Outpost Universe Forums

Off Topic => General Interest => Game Discussion General => Topic started by: lordpalandus on March 11, 2018, 02:07:11 AM

Title: Empires of Eradia: The Cataclysm of Chaos - Alpha V21
Post by: lordpalandus on March 11, 2018, 02:07:11 AM
This is the 21st Alpha Release:
-> Completed the major task: Journal Menu
-> Completed the major task: Objectives Menu
-> Some additional quality of life stuff

=======================

Nearly Complete Features:
1. Crafting and Runic Shard Scavenging (Only now need to create Artifact Recipes...)
2. Map Generation Overhaul
3. UI Overhaul
4. The Chaos God and You
5. Tutorial and Help Directory
6. Win Conditions and Quick & Enjoyable Playthrus
7. Profiles and Profile Updating
8. Player Input Interface (ie Enter your Name or Craft X Items)

Partially Implemented:
1. Heavy Code Cleanup and Redundancy Improvements
2. Code Modularization and Separate Files
3. Artifact Equipment
4. Sanity Mechanics (ie Hallucinations)
5. Grades of Field of View
6. Legendary Runes
7. Game Endings
8. Game Story
9. Journals, Journal Entries, and Overall Lore
10. Options and Pause Menu

Maybe Cancelled:
1. Hunters (replaced with Treasure Fiends)
2. Monster Abilities (replaced with Modifiers)
3. Debuffs (replaced with More Intelligent AI)

------------

Features Needed to reach Beta / Early Access (ermm, well, unpaid Early Access at least):

1. Testing Code with Temporary Sprites (to ensure a smooth transition to sprite/tiled visuals)
2. Testing Code with Temporary Sounds/Music (to ensure a smooth transition from silence, to audible)
========================

Link to grab Binary build (too big for upload here) = https://www.mediafire.com/file/dap8oad94qeqqal/BinaryV21.zip/file
Title: Re: Cataclysm of Chaos, Remade (ASCII), Alpha V20
Post by: lordpalandus on March 11, 2018, 02:08:04 AM
New Longterm Plan:

Instead of setting up a list of weekly tasks to do, I am trying now with having 5 major tasks to be completed in a month. This way, if the tasks are much harder than I'm assuming, I won't feel bad if I don't complete them in a week. However, some tasks may take less than a week, and so it would be great to get them done. I'm planning, whether it is realistic or not, to have the first Beta in early January 2019. So, I have a series of complex tasks that need to be complete to feel that the game is ready for Beta status.

Month of November, Tasks:
1. Story (Adding story, easy. Adding intuitive and easy to use menu for reading those entries, HARD.)
2. Sense of Direction (V21 will bundle this major task and Story together)
3. Challenge
4. Endgame
5. Finality

Month of December, Tasks:
1. Map Generation
2. Portals
3. Technique Overhaul
4. Expert Tutorial and Help Directory
5. Major Bughunt (bugs, typos, lacking logic)

===============
November Task Breakdown:

1. Story:
A) The Journal = A handy new menu for reading journals left by adventurers and lore entries.
B) Lore Entries = Find special objects in the game world or complete certain tasks, to unlock lore entries.
C) Backstory Explanation = Give a series of background lore, to help people understand the initial story at the start of the game.

2. Sense of Direction:
A) Incentives to Delve Deeply = Provide a myriad of benefits to delving deeper and to keep encouraging the player to only stay on levels for a short time.
B) Tasks and Rewards = Effectively short "quests" with a reward for completing them. There to help progress characters and to help players learn the game further.
C) Endings Menu = Explanation/Requirements and Current Progress towards each Victory Condition.

3. Challenge:
A) Primal Chaos Abilities = Unique abilities to make each Primal Chaos creature feel unique and dangerous.
B) Bosses and Chaos System = Powerful and optional creatures, that are summoned based on player actions as dictated by the Chaos System (system is partially in place already)
C) Ai Improvements and Pathfinding Overhaul = Make it so that enemies can pathfind intelligently towards the player without causing huge framerate drops, and know when it is a good time to use a Primal Chaos Ability.

4. Endgame:
A) Legendary Runes and Artifacts = Implement artifacts, great items of power with unique lore for each of them, that each provides the effect of a Legendary Rune while equipped.
B) Unlocked Legendary Runes and Challenges Menu = Perform great challenges, over a period of several playthroughs, to unlock a Legendary Rune.
C) Empowered Legendary Runes = If you have both the Artifact equipped and the appropriate Challenge/Legendary Rune unlocked at the same time, the Legendary Rune is now Empowered.

5. Finality:
A) Completing a Victory Condition, ends the game = Currently it allows you to keep playing.
B) End-Story for Victory Conditions = Get a unique story for each victory condition, and the option to try for a new victory condition if you so desire.
C) Player Choice Impacts on Story = How does player choice affect the end-story results. Also, most roguelikes have a statistics breakdown and a "score" of how well that character did!
Title: Re: Chaotic Planar Prison
Post by: Hooman on March 14, 2018, 07:52:38 PM
Good to hear about the progress on your new project.

For the break issue, do you have a doubly nested loop? I so, the break will only exit the closest inner loop. If you need to break further out, sometimes return can be useful.
Title: Re: Chaotic Planar Prison
Post by: lordpalandus on March 15, 2018, 12:43:28 AM
Well, it turned out that the main menu, that appears at every game startup, doesn't deactivate after running the code. Thus, hitting escape, breaks the main event loop, but brings you back to the Main Menu, which is why you either have to hit c to quit or begin anew.

I added an additional break after the function call for playgame(), so that when the main event loop (playgame) is broken, then the main menu will also break, allowing the program to end.

I'll look into provide an actual pause menu later, but for now this is sufficient.
Title: Re: Chaotic Planar Prison
Post by: Vagabond on March 15, 2018, 10:12:09 AM
Glad to hear you are making some good progress. Will be interested to see where you go with the project.

I keep hearing good things about Python but have never used the language myself.

-Brett
Title: Re: Chaotic Planar Prison
Post by: lordpalandus on March 15, 2018, 12:21:43 PM
Well Python does have two unique features that I've not seen in other languages:

1. Instead of using { } to create blocks of code, you use tabs or 4 space indentations. You have to choose one of them and the other becomes a syntax error, if you accidentally put it in your code.

2. Python is both an interpreted and compiled language. It compiles any secondary file imports but interprets the primary file. It however does sound like you can compile the main file into a binary .exe file. (Or it compiles all files into a binary, unsure of that).

EDIT: After a ton of work, I figured out ways to address tasks #3 and #5, and thus they are either fully solved or temporarily solved now. A few more things to do on the task list, before I can update it with new tasks.

EDIT2: After a lot of frustration and confusion, I have working mouse support for menus. I had to add a variety of additional code to the program, that the tutorial didn't mention to get it to work, that feels like code duplication, but oh well. I don't fully understand why it works right now, but it works fully, so I'll just figure out why it works later, when I go to create my own menus / redesign the current ones.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: lordpalandus on March 17, 2018, 05:09:32 PM
Released V2 of the Prototype, a day early. Created a Changelog that lists all of the things I accomplished this week, and have updated the Readme with new controls and other notes.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: Hooman on March 18, 2018, 03:21:22 AM
Hey, based on the zip file, it seems like you're programming this one straight from a simple text editor, rather than using any kind of code generating interface. Is that correct?

Have you thought about hosting the source code on GitHub? I can give you a quick intro if you want to do a pair programming session.

Title: Re: Chaotic Planar Prison - Prototype V2
Post by: lordpalandus on March 18, 2018, 10:27:41 AM
Yes I am coding it straight from Notepad++ at the moment. Though I might choose an IDE later once I start running into logic or runtime errors that I cannot solve.

I wasn't planning on putting up the source on github. As I intend to market this one, it will be closed source, and just because right now I'm distributing the source files doesn't mean I want to do that permanently. Over time, I intend to break up the codebase into separate files, and then I'll be distributing them as compiled pyc files or as a binary and dlls. I might include some files in an uncompiled state for modding purposes, but the current situation of the source being able to be looked through is temporary.

Thanks for the offer, but I'll pass.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: Hooman on March 18, 2018, 09:43:05 PM
Notepad++ is great. For a language like Python, you could do just fine using only that. I mostly stopped caring about having an IDE when I started using Notepad++ for Ruby work.


I can understand the concern about not wanting to put up source code for a commercial project. Very few people put up the code for something they are charging for.

I suppose you can always use one of the GitHub alternatives that allows for free private Git repositories:
GitLab (https://gitlab.com/)
Bitbucket (https://bitbucket.org/)




On a related note, here's some food for thought:
Gratis versus Libre (https://en.wikipedia.org/wiki/Gratis_versus_libre)

Cost, source code access, and even redistribution rights are rather independent concepts. All independently under the control of the original author. At least as far as legal protections go. There's still the issue of piracy though, which is possibly the major reason why much commercial software is closed source.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: leeor_net on March 19, 2018, 07:40:43 PM
Should still consider a repository. Working the way you are now in your own directory not mirrored anywhere is a recipe for disaster (believe me, I've been there).

I would suggest GitLab only because I've worked with it. You can use private repositories at no cost which will allow you to take advantage of a repository without also having to open your source. Additionally, you can provide access to individuals if you're looking for assistance with some part of your code, etc.

Just food for thought. I've been the victim of years of lost work due to a hard drive crash. It sucks. Like, it really sucks.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: lordpalandus on March 20, 2018, 11:42:20 AM
Alright, I'll look into a repository of some kind for the code, incase of a hard-drive failure some such catastrophe.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: Vagabond on March 21, 2018, 12:00:16 PM
lordpalandus,

If you are working hard on learning Python and do not feel like expending the energy to learn a repository right now, I would recommend once a week zipping the project and saving it to a cloud service to prevent what happened to leeor. This is what I used to do before I learned Mercurial. I would save it to Amazon cloud which had enough space available at the free tier that I never paid for it. I would just zip the entire project every Sunday night. This way if my 2 year old decided to dunk my laptop in the bathtub or something at most I'd only lose a week of work.

If you ever want to work with others, I would highly recommend learning a repository 'language' though. I'd look at Git first as it is very popular and powerful. I learned Mercurial first, but it is a lot more obsure, although I collaborate with people in both Git and Mercurial on a somewhat regular basis.

I currently use Bitbucket to host my private code and it works great. Up to 5 people allowed in a private repository and it allows either Git or Mercurial as the revision control choice. No expereience with GitLab to compare though.

There are other benefits to a repository over just zipping your code and sending it to the cloud though. I find it really helpful that I can traverse the history of my project. It is nice to feel free to delete any code I want and still be able to review it. It can also help to list new features between versions by reviewing commit messages. I also like that I can review my code online without being at my house through BitBucket if I ever want to.

-Brett
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: Hooman on March 23, 2018, 01:58:33 AM
Yes, the version history is wonderful. I find it also adds a psychological boost for making progress. When you can look back and see all the changes you've made, it's helps you keep going. There have also been studies that show a relationship between programmer happiness and version control commit frequency.

The automated remote backup also just kind of nicely comes along with version control. In the case of Git, it's a full history backup for each clone of the repository. For SVN, a working copy only contains the checked out revision, not the full history. It takes a dedicated clone to copy the full history. Relevant, since the OPU SVN repository was migrated about 1-2 months before a hard drive failure, so that was kind of a close call.  ;D


Vagabond is right though, in that you don't want not yet understanding Git to stop your progress. Schedule time to learn it, but don't worry about using it until you're ready and want to. I think we made a mistake before of trying to force Git before people had really learned it. The sudden switch was quickly followed by a serious lack of momentum on any OPU projects. Due to maintenance issues with the self hosted Git repository, we eventually switched back to the old SVN, and only recently started moving to Git again. I'm glad now, though it's easy to forget how much effort it took to learn Git.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: lordpalandus on March 23, 2018, 01:29:13 PM
@Vagabond; Good suggestion on a temporary solution. I'll likely use my Mediafire account to hold versions, until I can look into an online repository. If I get to the point of having a team, then yes learning something like Git would be essential to good teamwork. However, for now, as I'm the only one working on the code, a simple cloud service will suffice.

@Hooman; Yep, version history is great for that. And with a small enough list of changes, it isn't a chore to sift through them, like it was with CoC updates. I'll likely take the time to learn Git or some SVN later.

Right now, I'm in the process of planning a major code refactor/complete overhaul, and thus I'm busy learning Python, learning how the code interacts with eachother and figuring out how to break the code up into modules in separate files while not having massive amounts of code duplication or logic errors by committing to the code overhaul. Basically, the tutorial is designed for single file, with no moddability, and everything is heavily coupled with eachother. In order for me to make the code modular, and thus easier to read, understand, and add new code to (without creating further spaggetti code), I need to modify the class inheritance and class composition to allow for code modularity, which is going to be quite a bit of work. I'm planning on starting to work on the code refactor next week, and focus on the remaining tasks on this task list, this week. Likely I'll do the refactor in phases; replace one large block of code with a modular code in a separate file and then ensure that there are no new problems introduced by doing it in this fashion. Which also means, that in order to not get bogged down with too much work, the task list will be smaller to compensate. Just giving a heads up now, for my plans with the code and why I have no intention right now to learn Git as I'm simply too busy.

EDIT: As I have had some frustrations with the code this week and I've had to reset the code back to an earlier build to make it runnable again. I'm hoping to knock off a few more things off the task list, before I release the next build today (Sunday, 25th).
Title: Re: Chaotic Planar Prison - Prototype V3
Post by: lordpalandus on March 25, 2018, 03:16:22 PM
Prototype V3 has been now released.

Added a few new systems, addressed some bugs, and the Runestone/Regular Portal are partially functional.

Overall gameplay has significantly improved, with the addition of the A-Star (A*) Pathfinding and should feel quite a bit more challenging.
Title: Re: Chaotic Planar Prison - Prototype V3
Post by: Hooman on March 28, 2018, 04:23:41 AM
Hey, I was just taking a peek at your code, seeing if their are any suggestions I could make.

One possibility is to use enums (https://docs.python.org/3/library/enum.html) instead of string values when the value is meant for machine processing (if statements), rather than user display. It seems enums were added a bit late to Python, so I'm kind of wondering what standard practice is. In other languages, things like 'cancelled', or 'took turn' would typically be represented by an enum, which is just a named constant. This generally protects against typos. If you had returned 'canceled' in one part of the code, it would still compile and run, but not meet if-tests in the expected way, leading to bugs. A named constant must be previously defined, so if there is a typo, it is generally caught during a parse/compile stage and flagged as an error.

FYI: In hindsight, I just realized there is even a bit of controversy here: Canceled vs. Cancelled? (http://grammarist.com/spelling/cancel/)

Now that you've got me thinking about it, I generally try to avoid inflecting words in code. I probably would have chosen 'cancel' for that context.


If you wish to avoid using new Python features, there are other ways to restructure the code that might avoid having to use strings.
Title: Re: Chaotic Planar Prison - Prototype V3
Post by: lordpalandus on March 28, 2018, 10:08:06 AM
Not sure if enumerators are in Python v2.7; might only be in Python 3+. Can check though while I'm doing the Python 2.7 tutorial though.

If I could, I likely would use enumerators, as I found out that I have to explicitly add a temporary value with the stored returned value in order for it to do if-elif statements. So as an example:

Code: [Select]
if 'took turn': 
 for object in objects:
  object.clear()
 return 'took turn'
elif 'cancelled':
 return 'didnt-take-turn'

Even if the program returned 'cancelled', it would always execute the 'took turn' branch. When I stored the returned value in a temporary variable, then it would properly choose the correct branch. So, as I have to use a temporary value anyway, if I could get rid of the temporary variable and the string, and replace it with an enumerator, that would clean up the code quite well.

I will be doing a code clean up, when I redesign and refactor the codebase, but for now, the temporary variable is a sufficient, temporary solution. However, if I can use enumerators, I'll happily change things to it, so that I can test out the enumerators beforehand.



EDIT (leeor_net): added code tag
Title: Re: Chaotic Planar Prison - Prototype V3
Post by: leeor_net on March 28, 2018, 09:10:59 PM

... as I found out that I have to explicitly add a temporary value with the stored returned value in order for it to do if-elif statements. So as an example:

Code: [Select]
if 'took turn': 
 for object in objects:
  object.clear()           
 return 'took turn'
elif 'cancelled':
 return 'didnt-take-turn'

...

Consider revising what you're stating here as I don't follow. This is nonsensical as I'm understanding it... at least from the point of view of someone coming from a background and experience with PHP, C++ and BASIC. Python isn't my favoriate language and it does a lot of weird things but it is still a language that's supposed to make sense... would like to be able to help you out with potential improvements to structured programming.

Also note that depending on how your calling code is formed this could very easily result in an infinite loop in the case of 'took turn'.

Unrelated note -- You can surround your code with [ code ] [ /code ] tags or select your code and click the button with the '#' symbol in it. Makes posting code a lot easier and more readable.
Title: Re: Chaotic Planar Prison - Prototype V3
Post by: lordpalandus on March 28, 2018, 10:00:32 PM
That is a snippet of code related to the shoot_arrow() function call, without the temporary variable. With it would look like:

Code: [Select]
temp = shoot_arrow()
   if temp == 'took turn':
       for object in objects:
           object.clear()
       return 'took turn'
   elif temp == 'cancelled':
       return 'didnt-take-turn'

The shoot_arrow() function if it hits a valid target returns 'took turn'. If you cancel or shot the floor, it returns 'didnt-take-turn'.

Now, in the main event loop there is this chunk of code:
Code: [Select]
if game_state == 'playing' and player_action != 'didnt-take-turn':
   for object in objects:
       if object.ai:
           object.ai.take_turn()
         

If the player doesn't take a valid turn, the enemies do not get to act. Otherwise the game is constantly looping, without end. Whenever your action returns a string that is anything but 'didnt-take-turn', enemies get to act; otherwise they don't. If you remove the 'didnt-take-turn' from the chunk in the main event loop, the enemies would act nonstop with nothing preventing their actions. Effectively, that can turn the game from a turn-based game to a fully real-time game.

I don't personally like this solution, but it is how the developer of the tutorial did it so, I've left it alone. When I do the code refactor, I'm going to have to modify the main event loop a fair bit, so I'll likely change this then as well.

Probably should have mentioned the main event loop portion when talking about the returning of strings before. Sorry about that.
Title: Re: Chaotic Planar Prison - Prototype V3
Post by: Hooman on March 29, 2018, 07:38:17 AM
As an aside, on my install of Linux, the default version of Python is 2.7.

I just tested the enum example code from the first section of the docs, and it all works. I've also read the Enum stuff was backported to earlier versions of Python. Looks like you should be fine to use it.



As for your code, it's doing something interesting that you might not be aware of. Python (and other languages, such as Ruby) have both Boolean values (True and False) as well as Boolean-like values (Truthy/Falsy). Conditional tests extend the concept of True/False to cover non-Boolean values under corresponding Truthy/Falsy classifications. This allows for shorter code to check certain common conditions, though may be a little unexpected if you haven't seen it before. It allows testing for things such as 0/1 (Integers), empty/non-empty strings, and empty/non-empty lists.

For instance, you can check if a string is empty using either of the following:
Code: [Select]
if len(string) == 0:
  ...

Code: [Select]
if string:
  ...

As your string is a hardcoded constant, and of non-zero length, it has a Truthy value, and so the if block if always executed. What you wrote is roughly equivalent to:

Code: [Select]
if True:
  ...

StackOverflow has more discussion on Truthy/Falsy in Python (https://stackoverflow.com/questions/39983695/what-is-truthy-and-falsy-in-python-how-is-it-different-from-true-and-false), including a more complete list of Truthy/Falsy values.
Title: Re: Chaotic Planar Prison - Prototype V3
Post by: lordpalandus on March 29, 2018, 09:37:17 AM
Interesting. That would explain some of the other sections of the code as well. Such as:

Code: [Select]
while True:
...

Where the while loop is only terminated when you reach a Return statement. Otherwise it loops permanently. Generally I've only seen C++ or JavaScript loops where there is a specific Boolean condition attached to the loop. ie:

Code: [Select]
while (x > 0 and x < 10): 
...

Thanks for giving a link on Truthy/Falsy!
Title: Re: Chaotic Planar Prison - Prototype V4
Post by: lordpalandus on March 31, 2018, 04:00:56 PM
Prototype V4 is now released.

New Stuff: Mouse highlighting of square underneath cursor, fixes a variety of errors, implemented attributes and attribute training, increased the difficulty of the enemies (will look into improving challenge in the future), you now respawn at the last attuned runestone when you die (will look into creating the stress-based permadeath this week), and added a new item satchel, which stores all your scrolls and potions, reducing the clutter of your inventory.

Enjoy!
Title: Re: Chaotic Planar Prison - Prototype V4
Post by: Hooman on April 06, 2018, 02:18:18 AM
Making a second attempt at getting this to run on Linux. Compiling a copy of libtcod on Linux now. Just realized the libtcod repository uses Mercurial. That's probably why my attempts to download the source with Git failed last time. :P


Minor thing I noticed while scrolling through the source file. You seem to have a lot of mixed tabs/spaces, and trailing tabs/spaces at the end of lines. I have "show whitespace" enabled in my editor, so it's easy for me to see. If you find that option in Notepad++ and turn it on, you'll see it too.

If you want a quick way to remove trailing tabs and spaces, you can use the find/replace box. Search for whitespace followed by an end-of-line, and replace with nothing. I believe the regular expression for that search is "\s+$", without the quotes. The "\s" will find whitespace (tabs/spaces), the "+" finds 1 or more occurrences of the previous. The "$" should find the end of line. See Notepad++ Regular Expressions (http://docs.notepad-plus-plus.org/index.php/Regular_Expressions) if you want to check the docs.

There's also some info on StackOverfow about Trimming Trailing Whitespace with Notepad++ (https://superuser.com/questions/699382/how-do-i-automatically-trim-trailing-whitespace-with-notepad).

To replace tabs with spaces, you can search for "\t" (the tab character), and replace it with the appropriate number of spaces in the replace box.

Quick and easy way to tidy up source code.  :D
Title: Re: Chaotic Planar Prison - Prototype V4
Post by: lordpalandus on April 06, 2018, 08:48:38 AM
Few questions:

1) Why does it matter if I have a bunch of white spaces?

2) Doesn't the compiler/interpreter skip over them, much like they ignore comments?

3) I do intend to completely rebuild the codebase, with all my listed design requirements, at a later date (probably before the game reaches beta state), so why put all the effort into addressing white space/extra tabs with throwaway code?
Title: Re: Chaotic Planar Prison - Prototype V4
Post by: leeor_net on April 06, 2018, 09:35:05 AM
Few questions:

1) Why does it matter if I have a bunch of white spaces?

It's not that you have a bunch of white spaces, it's about consistency in which type of tabbing you use. I prefer tabs, many developers prefer spaces. In either case, choose one method of tabbing and stick with it.

2) Doesn't the compiler/interpreter skip over them, much like they ignore comments?

Yes, but white space isn't for the compiler, it's for the humans reading the code. And in the case of Python it's actually how you specify blocks of code.

3) I do intend to completely rebuild the codebase, with all my listed design requirements, at a later date (probably before the game reaches beta state), so why put all the effort into addressing white space/extra tabs with throwaway code?

Fair point. However in this case it's a matter of setting best practices and getting you used to doing the same thing to keep things consistent. If ultimately you're just going to throw it away who cares but it does make sense to pick a style and stick with it.
Title: Re: Chaotic Planar Prison - Prototype V4
Post by: lordpalandus on April 06, 2018, 09:23:05 PM
The code is written with 4 spaces, and is consistent throughout. Anytime I accidentally place a tab, it causes a syntax error.

There may be tabs in the blank white spaces or tabs in the #comments, but that isn't intentional on my part; they are added in by Notepad++. For the redesign, I intend to go for tabs, as I prefer tabs.

Well, for me, the code is perfectly readable, for me, as it currently stands. And as I'm the only one adding / modifying the prototyped code, as long as I can read it, it should be fine. I do want to have a more consistent and pleasant reading when I redesign the code, as I'll want the code to be moddable or even just easy for me to add things to the code. I am however, aware that some of my duct-tape code is starting to cause the prototype code to look like spaggetti code, and that is regrettable. Unfortunately, due to the way the tutorial made the roguelike code, everything is coupled with eachother and often information needs to be explicitly placed more than once in some places to make it work properly. Not an ideal solution, but it doesn't really matter at the moment as its just throwaway code.

I do intend to go with a consistent style, but my style isn't how the tutorial code was made, and thus I have to work with what I got for the time being, thus in several places it will have conflicting styles in the current codebase. I intend to have a consistent naming scheme (ie for functions, variables, classes, etc), comment methodology, and code structure philosophy in the redesigned code.

Title: Re: Chaotic Planar Prison - Prototype V4
Post by: Hooman on April 07, 2018, 11:42:26 PM
Leeor nailed it, in that it's an issue for people, not the compiler. It's one of those intangible things, likely badly indented C++ code. The compiler doesn't care, but it can make working on the file awkward.

Quote
3) I do intend to completely rebuild the codebase, with all my listed design requirements, at a later date (probably before the game reaches beta state), so why put all the effort into addressing white space/extra tabs with throwaway code?

The cost of a complete rewrite is high. In practice it rarely happens. People are more likely to give up on a project than perform a complete rewrite.

Quote
The code is written with 4 spaces, and is consistent throughout. Anytime I accidentally place a tab, it causes a syntax error.

There may be tabs in the blank white spaces or tabs in the #comments ...

Exactly. It's not consistent. Since indentation is part of the Python grammar, it will warn you, but only for code lines. Your comment lines and blank/spacer lines often start with tabs.

As for how this happens, typically it's when you try to backspace a seemingly empty line when the cursor is in the first column, yet the line already contains whitespace for indentation which can't be seen:

Code: [Select]
if True:
    operation()
|(<-blinking cursor)(whitespace)
    operation2()

Backspace:
Code: [Select]
if True:
    operation()|(<-blinking cursor)(whitespace)
    operation2()

This affects further editing. If you try to edit the end of that line, the cursor might now go to the end of the whitespace, rather than the last visible character. This can slow down editing as you now have to navigate that whitespace. It also makes it harder to plan ahead what keys to press if you can't see or predict where the cursor will go, which leads to more mistakes, revisions, and a higher mental load when you're already trying to remember multiple lines you have to edit.

This can also lead to messy diffs when version control is used. Instead of just changes to functional code, the diff might now show whitespace changes, making them harder to read and review. Worse, some editors, such as Atom (using default settings) will attempt to automatically "fix" these whitespace issues. Someone might try to make a one line edit, only to find the diff now contains changes throughout the entire file. The actual functional change gets lost in the noise of whitespace changes.


Finally, the find/replace all edit I suggested is an automated way to fix it all at once, and should take all of 10 seconds.  ;)

Though I do encourage you to play around with the find/replace box for a couple minutes to explore and fully understand what is happening and how it works.
Title: Re: Chaotic Planar Prison - Prototype V4
Post by: lordpalandus on April 07, 2018, 11:54:34 PM
It is true a complete rewrite is expensive to do. However, it can also be argued that fighting with code that is meant to be a prototype and not final code, and constantly bug fixing esoteric errors, can be even costlier.

However, I think that designing good code, from the start, takes practice. If you design good code from the start, and maintain that good code, then you don't have to do rewrites and you don't have to excessively bug hunt. I'm not quite at the stage where I can design code properly the first time, otherwise I would. I have to work with the skills and knowledge I know and work from there.

As far as the rewrite goes, I intend to do it in phases; rebuild one section of the code at a time, and build it into the current prototyped code. Then, continue to work at modularizing the code, and eventually have no prototype code left, as I've replaced it all. Basically, use the working prototype code as a "driver" to ensure my new, final code, has no immediately obvious bugs, and continue to replace prototype code with final code, until I have only final code left.

Actually Notepad++ adds those tabs whenever I hit Enter at the end of a line, thus ensuring that every time I try to do a line of code, I have to remember to delete those added tabs. Hence, why I want to switch over to purely tabs.

EDIT: As for this week's build, it will be a bit sparse on changes. I have gotten through more of the tutorial and fixed a couple little bugs I couldn't address before, as I had no idea how to implement them. I'll see what I can muster between now and tomorrow, to address the things on the list.
Title: Re: Chaotic Planar Prison - Prototype V4
Post by: Hooman on April 08, 2018, 12:08:16 AM
What you're describing is code refactoring. Definitely a very important skill. Refactoring is lower cost than a complete rewrite, particularly from a psychological standpoint, and precisely because it's done in stages. You should always have working code, and so you can keep using, and extending the code, even with further cleanup coming. It also nicely addresses the issue of not having a perfect design the first time, and the importance of just starting, and fixing things along the way.

To do refactoring cleanly, code quality issues such as whitespace matter even more. Whitespace issues can add a lot of noise to the refactoring process. Hence, it is typically taken care of up front, in an automated way, and in its own commit. Functional changes would then follow in subsequent commits.


Edit: Notepad++ can be configured to use either tabs or spaces for the indent, as well as the indent width (4 spaces, 2 spaces, etc.). I believe it can be configured either globally, or per language.
Title: Re: Chaotic Planar Prison - Prototype V4
Post by: lordpalandus on April 08, 2018, 03:26:47 PM
Hmm. Okay. I figured that as I intend to replace all of the existing code with new and modular code, that would be considered a full rewrite... its just that I'm doing the full rewrite in stages, to have working code to test out the new code to ensure that no new bugs are created with the new code.

Also good to know on the Notepad++ indenting. I'll look into it.

---

As for today's release, I have a few more things I'd like to try to implement, and once that is done, I'll release Prototype v5.
Title: Re: Chaotic Planar Prison - Prototype V5
Post by: lordpalandus on April 08, 2018, 05:00:35 PM
Prototype V5 has now been released.

I had a rough week, with several days of extreme mental exhaustion, and my osteoarthritis in my knees acted up this week, so I had a bad limp and a lot of unavoidable pain. So I didn't accomplish as much as I had hoped to this week, but this release still has a few interesting features. These are:

- Three new rare item types = Amulet of Energy (+25 Energy and 1 Energy Rejuvenation per turn), Elixirs of Attribute (+3 to a specific attribute), and Manuals of Attribute (provides 750 + 3*number of Manuals read before XP training for that attribute and each one read increases XP gained whenever you perform an activity).

- The first Primal Chaos creature is now in; the Primal Chaos Orc. It is capitalized and bright red. Also, activated the Chaos Portal, that will spawn these nasty critters too.

- The first Ranged combatant is now in; the Goblin/Orc Archers. They are bright yellow and will attack you at a range. They will also flee from you if you get too close. The AI is a bit stupid, and thus they don't pathfind easily around objects. They have half HP and half damage as a melee attacker of the same name (ie goblin)

- When you die and respawn, you will properly lose your entire inventory, forcing you to have a fresh start at life, at least in terms of equipment.

- Made some changes with items and item generation. Items now have a material tier (ie fine cloak or ironite coif) and you can see this by hovering the mouse over the item. Also, better equipment will only drop in later levels now, rather than at the very first level.

Hope you guys enjoy, and I hope I have a better week, next week!
Title: Re: Chaotic Planar Prison - Prototype V5
Post by: Vagabond on April 09, 2018, 12:26:46 PM
Sorry to hear about your knees acting up. Knee problems are pretty miserable to deal with.

I haven't tried Chaotic Planer Prison yet, but it sounds like you are making a lot of progress.

-Brett
Title: Re: Chaotic Planar Prison - Prototype V5
Post by: Hooman on April 10, 2018, 02:40:07 AM
I haven't managed to try it yet either, though mostly because I haven't gotten it working on Linux yet. Seems like the libtcod library author doesn't directly support Linux, instead deferring that to the community to support. I tried downloading the library source, compiling it, and installing it, though the game and any library sample code fails to find the library.

Seems like it should be an easy configuration fix, though I have yet to figure it out. Maybe some combination of PATH and PYTHONPATH will work.
Title: Re: Chaotic Planar Prison - Prototype V5
Post by: lordpalandus on April 11, 2018, 11:48:35 PM
No worries. It might be best that people passed on the earlier builds.

However, the newest build, is proceeding quite smoothly and have implemented a variety of desired features, that were on the backburner, into the game now. Such as:

You can now simply click on a target with the mouse to attack it with a ranged-based attack. LMB to shoot an arrow and RMB to zap them (new basic spell).
Title: Re: Chaotic Planar Prison - Prototype V6
Post by: lordpalandus on April 14, 2018, 02:52:28 PM
Released Prototype V6!

I was very productive this week, had only a slight limp from the osteoarthritis, and only had one day of mental exhaustion. The changes in this build are too numerous to list in a single post, so I suggest reading the Changelog and Readme file, that details the changes, particularly to the controls.

Enjoy!
Title: Re: Chaotic Planar Prison - Prototype V7
Post by: lordpalandus on April 21, 2018, 05:28:56 PM
Released Prototype V7!

Lots of new changes with this build, so definitely take a look at the changelog if you are interested, or read the first post, that highlights the biggest changes. Also, fixed I believe all of last week's bugs, for this build, including the flee code for mages/archers and melee related bugs.
Title: Re: Chaotic Planar Prison - Prototype V7
Post by: leeor_net on April 22, 2018, 04:40:18 AM
Ech, requires download and install of python interpreter. Yuck. :P

Should really make this a self contained package with everything that a user needs to run it without needing to download and install runtime environments.
Title: Re: Chaotic Planar Prison - Prototype V7
Post by: lordpalandus on April 22, 2018, 03:48:06 PM
I plan to. Eventually. I have higher priority stuff that needs doing first though.

I'll look into providing a Binary executable when I reach Alpha Status. At that point, the game will be more of a game, rather than a modified tutorial, and thus will be worth taking the time into looking at making it more new user friendly.
Title: Re: Chaotic Planar Prison - Prototype V7
Post by: leeor_net on April 22, 2018, 04:16:10 PM
Fair enough.
Title: Re: Chaotic Planar Prison - Prototype V7
Post by: Hooman on April 27, 2018, 09:35:02 AM
And as a counter point, I'm less fond of having the entire Python environment distributed with the game. I tend to trust binaries more from the official source. Plus it's a large amount of data to add to the zip file, and would do me no good on Linux, which btw, already includes a Python install by default (as many system scripts use Python).

Though yes, for final end users who just want to play a game, having a complete install package is very appealing. But that's more of a version 1.0 problem.


Good to hear you're still making progress!
Title: Re: Chaotic Planar Prison - Prototype V8
Post by: lordpalandus on April 28, 2018, 06:44:23 PM
That is definitely a fair and good point, Hooman! I would prefer the same as well, just haven't figured out how to do so yet, as it hasn't been a priority.

Also:

Released V8 of the Prototype. This was another very productive week and managed to get several features in that I've been puzzling over, for the past several weeks on how to implement; ie Area of Effect highlighting for the area that a spell will affect, as well as the Knockout system. Other big changes are: a huge overhaul of the UI, Primals are significantly tougher now, Damage types, Different effects from each Portal, and fixed quite a few bugs.

Enjoy!
Title: Re: Chaotic Planar Prison - Prototype V8
Post by: Hooman on April 29, 2018, 06:56:55 AM
I took another quick look through the code, seeing if there are any shortcuts you could take. I noticed this part:
Code: [Select]
    #This function advances the player to the next level. You will regain 50% of your maximum HP before entering the next area.

    global dungeon_level, Attuned_Status, Activation_Timer, Difficulty_Level, Monsters_Spawned
    message('You take a moment to rest, and recover your strength.', libtcod.light_violet)
    player.fighter.hp = player.fighter.hp + (player.fighter.max_hp / 2) 
    player.fighter.ep = player.fighter.ep + (player.fighter.max_ep / 2)

    if player.fighter.hp > player.fighter.max_hp and player.fighter.ep > player.fighter.max_ep: #both above maximums
        player.fighter.hp = player.fighter.max_hp
        player.fighter.ep = player.fighter.max_ep
    elif player.fighter.hp > player.fighter.max_hp: #only hp over maximum
        player.fighter.hp = player.fighter.max_hp
    elif player.fighter.ep > player.fighter.max_ep: #only ep over maximum
        player.fighter.ep = player.fighter.max_ep

Looks like you're doing some value clamping, a very necessary and common operation. Consider using two independent if statements to reduce redundancy:
Code: [Select]
    if player.fighter.hp > player.fighter.max_hp:
        player.fighter.hp = player.fighter.max_hp
    if player.fighter.ep > player.fighter.max_ep:
        player.fighter.ep = player.fighter.max_ep

Another place you can remove some redundancy, is the section above that adds half the max value. Consider using += when you want to add to a value, so you can avoid having to write the same variable twice:
Code: [Select]
    player.fighter.hp += (player.fighter.max_hp / 2)  
    player.fighter.ep += (player.fighter.max_ep / 2)
Title: Re: Chaotic Planar Prison - Alpha V1
Post by: lordpalandus on May 05, 2018, 01:53:12 PM
Thanks for the suggestion Hooman. I also implemented that fix now in a few other spots in the code where I used similar code snippets.

EDIT: Released Alpha V1. Enjoy!
Title: Re: Chaotic Planar Prison - Alpha V1
Post by: Hooman on May 09, 2018, 06:00:11 PM
Hmm, just noticed this is now Alpha. Is there a particular milestone you've hit?


I'm curious, is there any specific area of the code you have working, but might want to improve? Maybe shorten things up. Maybe make it more flexible or easier to edit, maintain, or extend.
Title: Re: Chaotic Planar Prison - Alpha V1
Post by: lordpalandus on May 09, 2018, 07:11:42 PM
Yes? Over the past 4 weeks I've been working on a 30 point list on the very first post of this thread, and finally managed to complete the last few points in the Proto9 / Alpha 1 build (whichever you prefer). Now, I have a 40 something point list of things I need to complete for the game to be considered "beta" on the first post of this thread.

Yes, and that applies to 90% of the codebase. Over the next few weeks, I intend to modularize the code into several specific files (ie Everything Player Character, All Global Stuff, etc), sort out the code so that everything for a particular thing is found in the same spot (ie Level up Code), work on reducing redundancy on several functions that are essentially duplicated, and could be all combined into a single function, improving code documentation with a consistent theme for comments and the inclusion of doc strings where applicable, and I am working on using a consistent theme for naming things (ie, my globally accessible variables will now be in all capitals to help me in noticing them)

EDIT: I've tried to do some of the modularization in Alpha V2, but with little success. Much of the codebase is heavily coupled with eachother, and even moving a class or function to another file causes the code to bork. So, a lot of the code is going to need to be heavily redesigned to accommodate multiple file modularization. Alpha V2 will contain the start of the modularization, with the GLOBALS module (contains all of the global variables and lists used by the game, all neatly sorted and almost all documented)
Title: Re: Chaotic Planar Prison - Alpha V2
Post by: lordpalandus on May 12, 2018, 03:17:55 PM
Alpha V2 is released.

Due to having spent most of the week repairing the codebase, at my three separate attempts at performing a major refactor of the code and to start off the code modularization process, I didn't accomplish most of my task list. I did accomplish a lot of under-the-hood stuff, and figured out why those attempts at refactoring the code base failed, but the overall new content in this release is slim; three new Rare items are now available to be found (Rune of Recall, Rune of Mapping, and Holy Hand Grenade).

I'm now quite exhausted, so I'm going to go lie down. I intend to stay focused for next week, and make sure to complete my tasks before trying any other drastic code-base changes.
Title: Re: Chaotic Planar Prison - Alpha V2
Post by: Hooman on May 13, 2018, 12:27:28 PM
Quote
Holy Hand Grenade
Excellent  :D

Sounds like you've got a pretty good plan.
Title: Re: Chaotic Planar Prison - Alpha V2
Post by: lordpalandus on May 15, 2018, 09:34:12 PM
Yep.

Question (to anyone who reads this): Is there any particular reasons why there isn't any current interest to this game, in terms of feedback or replies to this thread? Is it because of compiling issues, or is it not enjoyable, or is it boring, or something else?

I ask because there is very few replies to this post, other than Hooman, and occasionally leeor_net, but yet some weeks downloads are only 1, and other weeks they are close to 10. For those weeks when there are few downloads, it would be useful to know why no one touched it; and on the other hand, when there are a lot of downloads, are people having any feedback for it?
Title: Re: Chaotic Planar Prison - Alpha V2
Post by: Hooman on May 15, 2018, 11:34:25 PM
For me it's compiling issues. Hence why most of my comments are about the source code.

With your other project, it was hosted on the web, so very easy to try out.
Title: Re: Chaotic Planar Prison - Alpha V2
Post by: Vagabond on May 16, 2018, 11:35:15 PM
I'm generally interested in the game but am waiting for you to progress further as it is still very early in development. If you have specific need for testing, I would be happy to help.

-Brett
Title: Re: Chaotic Planar Prison - Alpha V2
Post by: lordpalandus on May 17, 2018, 08:42:31 AM
Alright.

Then, I'll see about trying to prioritize learning how to build a binary, and look into determining when I desperately need playtesting; likely mid-alpha, perhaps?

Thanks for the feedback.
Title: Re: Chaotic Planar Prison (Game Renamed) - Alpha V3
Post by: lordpalandus on May 20, 2018, 02:47:08 PM
Alpha V3 is released! New changes are = Separate technique menus (Shift Z, Shift M, Shift T), Disintegration now works, Two new Utility spells, Did a lot of work under the hood, rebranded the game as Cataclysm of Chaos, A lot of interface improvements, Heavily modified game balancing, Fixed a bunch of bugs, Added Resource Nodes and On the Move Crafting, Monster Updating is now active, Primal Updating is now active, implemented random monster names, and you now spawn randomly in the map rather than in a corner. Most of the stuff on my weekly task list turned out to be far more complicated than I originally thought and thus only a few things actually got solved.

If I can figure out how to use PyInstaller in a timely manner, then I'll release the binaries for Alpha 3.

===========================

EDIT: PyInstaller isn't working or I didn't install it properly. Either way, it is going to take me a while to figure out what is going wrong, so unfortunately, it doesn't look like I'll be able to bundle binaries with this release, but I'll try to have it in for Alpha V4.

EDIT2: For some reason my OS is not recognizing my Python 2.7 install. Pip, a program used to install Python modules, couldn't detect it, yet it is installed on my C:/. I also tried another program, py2exe to try and make an executable, but it failed to work because the command-prompt keyword/command python isn't recognized. So... I think I'm going to have to figure out how to fix my python install or something. Regardless, I doubt I'm going to figure it out anytime soon, so no binaries for Alpha V3. Sorry.

EDIT3: It is unlikely that I'll have binaries for next release either. I've tried several fixes online to try and get the system to recognize the Python2.7 install, but none of them have worked. I tried adding it to the environment variables into Path, but cmd.exe still doesn't find python; if I go manually to C:\python27, it will load up Python properly. I tried to add it to the registry and that didn't work. I'm at wits end, so until I figure out how to either register python27 or how to get the OS to accept the path to the python interpreter, the creation of a binary is not available.
Title: Re: Chaotic Planar Prison (Game Renamed) - Alpha V3
Post by: Hooman on May 21, 2018, 02:05:44 AM
Perhaps you already know, but just in case, if you update environment variables through a settings GUI, you generally have to restart any open command prompts for the new settings to take effect.


I'm curious about the cross platform build potential, and what steps I might do to replicate your efforts. I assume this program is to package Python code with a Python interpreter. That might not be quite enough though, since the code relies on the libtcod native extension. That's not quite so easy to package or build cross platform. The packager might not be smart enough to account for this dependency, or might need extra configuration to account for it.
Title: Re: Chaotic Planar Prison (Game Renamed) - Alpha V3
Post by: lordpalandus on May 21, 2018, 09:42:35 AM
Well, apparently reinstalling python 2.7, and making sure that the checkbox for installing in Path, was checked, now properly allows me to use the command python in cmd.exe, without getting an error. Haven't tried the other stuff like pyinstaller yet though.

Actually, I did restart it, before reinstalling python 2.7, and it didn't work. Only by reinstalling python 2.7, did it work. Maybe it required both a proper registering in regedit AND assignment to path to get it to work.

----

Well, pyinstaller is more advanced than py2exe, and thus I'd probably go with it. It is robust enough to detect other libraries, by scanning all of the import keywords and building the appropriate libraries into the executable OR having them as dlls. Py2exe should work as well, as the actual roguelike tutorial suggests it for making binaries. However, py2exe only works on windows and only makes windows binaries. Unfortunately, to get pyinstaller to create a binary for Linux / mac, you have to run pyinstaller on those systems; ie I can only build windows binaries as I only have access to a windows OS, so if someone wanted a Linux binary, I'd need access to a Linux to create it OR explain how the end user can create a binary on their machine.
Title: Re: Chaotic Planar Prison (Game Renamed) - Alpha V3
Post by: Hooman on May 21, 2018, 11:14:53 PM
I suppose that's good reason to document the process then, so people can help out with the other platforms. If you have good instructions for Windows, that can help people figure out how to do it on Linux or Mac. Once a solution is found, it might be possible to setup Docker to compile and package things for other platforms using virtual machines running on Windows.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V3
Post by: lordpalandus on May 23, 2018, 10:42:18 PM
Good to know!

Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V3
Post by: lordpalandus on May 27, 2018, 12:59:00 PM
Alpha 4 is proceeding along smoothly, and will be released later today. I accomplished a lot this week, in terms of modularization and code refactoring, and still have a few more features to complete before I release Alpha V4. I'll update this post when I've released Alpha V4.

EDIT: Alpha 4 is now released! Got a lot done this week, but now I'm quite exhausted after doing about 3 days straight of heavy coding, refactoring, and designing, and I'm going to take a break now and recuperate. Next week will be focused on learning the interface, libtcodpy library console-modification commands, and look into implemented a lot of my ideas for improving the interface (I have a long list of ideas). Still haven't fully resolved my issues with PyInstaller or Py2exe, so no Binary this week yet.

Regardless, hope you all enjoy!
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V5
Post by: lordpalandus on June 02, 2018, 06:10:29 PM
Alpha V5 is released.

Biggest noticeable change is that I've managed to get pyinstaller to work, and I now have a compiled binary version available (for windows). I also have binary compiling instructions in the loose-files version, which is the one that is attached to the first post, in case anyone on Linux/mac wants to give it a go at trying to make the game run on their native OSs (I don't have access to Linux or mac machines).

I struggled this week, partly due to exhaustion and partly due to the interface code being a royal tool. I didn't get any of the interface related tasks done this week, but I better understand the problems with the interface, so at least that is a thing. However, I still accomplished a lot of gameplay related stuff this week and of course the aforementioned binary is now a thing, for future builds.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V5
Post by: Vagabond on June 02, 2018, 08:10:45 PM
Lord Palandus,

I downloaded the new binary release and checked it out briefly. Is there a way to adjust the resolution to match my monitor? The text spills off the right and bottom of the screen making it tough to play.

Check out the screenshot for what I mean. This is from a Windows 10 1080P laptop for reference.

-Brett
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V5
Post by: lordpalandus on June 02, 2018, 09:09:34 PM
That is an odd occurrence.

I'm running a monitor with 1920x1080p myself, windows 8.1. Though mine is a desktop, which may make some kind of difference.

Does fullscreen mode do anything (ALT+ENTER) to alleviate the issue?
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V5
Post by: Hooman on June 03, 2018, 10:50:23 AM
Just a note, users DPI settings can affect display size.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V5
Post by: Vagabond on June 03, 2018, 05:04:45 PM
Yeah, selecting full screen fixed it. After initially setting fullscreen, everything fit properly even after cycling out of fullscreen, or closing and reopening the app. So it is only a problem on the very first open of the app.

-Brett
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V5
Post by: lordpalandus on June 03, 2018, 07:34:20 PM
Good to know. I'll mention that in the Readme file to use Fullscreen at least once, to fix screen resolution issues.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V6
Post by: lordpalandus on June 10, 2018, 01:34:22 PM
I'm hard at work with Alpha V6, and plan to have it out later today, with a fresh binary.

EDIT:

Alpha V6 is released, with an accompanying Binary for those that prefer it.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V6
Post by: Hooman on June 11, 2018, 11:42:43 AM
Good to hear about the progress.

Would you consider posting any screenshots?


On another note, I should discuss Control-Driven Programming versus Data-Driven Programming with you. People generally start out with Control-Driven Programming, though I believe Data-Driven Programming would be very useful to you on this project. It would allow you to add new game items much quicker, rebalance things easier, and generally just focus more on the core gameplay, rather than spending time fighting with bugs, trying to express needlessly convoluted logic to the computer, or editing/maintaining old code as you add new features.

I haven't really found a good explanatory article on it though.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V6
Post by: lordpalandus on June 11, 2018, 02:11:26 PM
I can look into providing some screenshots, for sure.

What is the major differences between the two coding approaches?

I have been doing large refactors of various parts of the code, and as such, I may be inadvertently already using a Data-Driven Approach. As I'm self-taught, I'm not aware of nomenclature or computer programming jargon, and thus I may be doing things the right way, without knowing what is the right way.

EDIT: Don't have a lot of time today, but here are two screenshots. I'll look into providing more later. These are from starting up the game.

EDIT2: I'm in the process of fixing some bugs, but I'm hoping to get a few more screenshots up!

EDIT3: Got the bugs fixed, and two new screenshots. The two new ones are from playing after about 30 minutes... I recently had died, as I got cocky and dived into the middle of 4 enemies that massacred me.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V6
Post by: lordpalandus on June 14, 2018, 04:29:14 PM
Here are a few new screenshots, but with the latest Alpha V7 build, that will get released Saturday/Sunday. Some explanations:

Screen1 = On the Run Crafting Menu, with a new item, the Energy Shield.

Screen4 = Ranged Technique Menu, with all Techniques available. The Blue + is a Runic Fountain (for refilling Runic Elixirs) and the Red g is a Goblin Mage.

Screen5 = Melee Technique Menu, with all Techniques available. The Blue g is a Goblin Fighter (of some sort) and the White A is a Crystallized Archer, which is effectively a treasure chest.

Screen6 = Spell Technique Menu, will all Techniques available. The Blue # is a Metallic Scrap Pile and the Green # is an Organic Scrap pile. The other symbols on the map (ie X, ], [, /, etc) are items I decided in not taking with me.

Screen7 = A new major system in this next release is applying and taking advantage of Fear or Confuse. Some abilities apply these effects and others take advantage of them to brutal effect. If an ability takes advantage of one, it will provide an automatic critical and then remove the effect. You can also still naturally fear archers by getting too close or attacking mages to cause them to flee, and any abilities that take advantage of fear will take advantage of these situations. Also, the slightly blue [ and \ are magical items, that I didn't want (was playing as a Mage this run and the higher your melee protection the higher the energy cost of your spells).

Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V6
Post by: lordpalandus on June 16, 2018, 08:23:53 AM
Two New Screenshots.

Screen1 = The Runestone Menu; Has several new options available in Alpha7, such as Attribute Training, Resource Transmutation, and Increasing Global XP rates.
Screen2 = A battle between two Primal Chaos Mages (Purple M), at the Primal Chaos Portal (the black asterisk). Unfortunately for me, they drained too much XP and I lost a level and gained stress.

Would have posted more screenshots, but I found a hard-to-find crash bug and the game crashed. Managed to get to Floor 3 and to level 28, as an Archer.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V7
Post by: lordpalandus on June 17, 2018, 11:45:01 AM
Alpha V7 is released. Main page has a Binary and an uncompiled version as usual. This Alpha I accomplished the most in, and is the longest changelog to date. I've listed the major highlights on the first post's page.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V7
Post by: Vagabond on June 18, 2018, 10:00:17 AM
Lordpalandus,

I've been impressed by the steady progress you have been making. Keep up the good work!

-Brett
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V7
Post by: lordpalandus on June 18, 2018, 04:09:14 PM
Thank you.

My "plan" for this week is to now address challenge, AI, and user interface related issues. As most of the progression systems are in, it can lead to a feeling of being able to steamroll your foes with ease, especially if you get lucky and get a few Rares or an Epic at the start of the game.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V7
Post by: Hooman on June 19, 2018, 07:57:41 PM
Huh, this looks much further along than I expected. Looks to be in a decently playable state.

I assume you mean "Rune crafting"?



As for my earlier comment, I noticed you have long sections of control flow code that basically define data. Think of areas of the code that appear to be copy/pasted with a few values updated. This could be cascaded if blocks, switch statements, or a series of similar functions. This would be an example of Control-Driven Programming, as all the data is embedded in coded control structures.

Data-Driven Programming would be more like having a big array of objects, which may be searched or indexed. Changing data is just changing entries in an array. The data could be a hardcoded array in the source file, or perhaps included as a secondary source file separate from the game logic. It could also be loaded from disk as a data file.

If you want to move towards Data-Driven Programming, a general rule of thumb is avoid copy/paste/update of code. That is particularly true when control flow is copied/pasted with it. If you find yourself doing this, see if you can convert the data into an array of structs/objects. It's perfectly fine to copy/paste/update array elements.

As a side note, you can generally tell code/logic apart from data/memory based on how it looks. Code and logic appears chaotic while data and memory appear regular. Take for instance an image of a CPU die. You can physically see where the CPU cores are versus where the cache memory is. Here's an image of a Core i7 die for you:

(https://forum.outpost2.net/index.php?action=dlattach;topic=6073.0;attach=1326;image)

If you open an executable file with a hex editor, you'll notice the same thing. Scrolling through the code section, it will look like a chaotic mess. Scrolling through the data section will show large chunks of regular data, which often aligns visually into columns and blocks. As an example, here's the start of the code and data sections from Outpost 2:

(https://forum.outpost2.net/index.php?action=dlattach;topic=6073.0;attach=1328;image)

(https://forum.outpost2.net/index.php?action=dlattach;topic=6073.0;attach=1330;image)

Your source code will likely be similar. The code will look irregular. Each algorithm solves a new problem. Otherwise, you'd have just reused the old code. The data, particularly any hardcoded arrays, will probably look fairly regular.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V7
Post by: lordpalandus on June 19, 2018, 10:35:39 PM
Oh, yes, it is very playable. No endgoal or victory condition yet, but can be played as an infinite depth dungeon crawler right now with a fair amount of enjoyment to be had.

I should really get in the habit of choosing a specific jargon and sticking with it, rather than have it mean different things. There are two types of Runes in the game; consumable Runes (Recall, Mapping, and Fabrication) and profile-bound Runes (Equipment Runes, Greater Runes, and eventually Legendary Runes). With high enough Crafting Mastery you can craft the consumable runes... or you can create Enchanting Orbs and upgrade profile-bound Equipment Runes. However, I can chalk up a lot of this confusion to my inexperience at designing games and systems... I'm gotten a lot better, but clearly have a ways to go.

Yes, and that is why I have modularization listed as tasks to complete; take large sections of essentially duplicated code, figure out a way to combine it all (whether with a powerful function or class composition or class inheritance) and then move large sections of that new code to a separate file. Slowly and yet surely I'm getting rid of tons of duplicate code and replacing it with significantly less code that does the original job, but also so much more and is far more flexible and reusable than the old code was.

One of the things I want to do for Alpha V8, is to greatly reduce the redundancy of code with the AI classes by using Class Inheritance, rather than have 6 separate classes that all share a lot of code, but each have their own specific things needed to operate properly; an excellent place where Class Inheritance can work wonders.

I've also tried to figure out how to use lists, list comprehensions, tuples, dictionaries, and list manipulation techniques (ie extend, remove, pop), to try to reduce redundant code, but thus far haven't had a ton of luck with that. As I continue coding, I do find places where these things would greatly help to reduce code redundancy and deter copy/paste code, and have implemented it in the places where I found a purpose for them. However, trying to stay on task, and produce a weekly build discourages me from sitting around rebuilding old code, unless the rebuild allows me to add new code in more easily. As I mentioned above, I intend to redo the AI classes, as I intend to clean up the AI code and try to more easily streamline the AI pathfinding code, as I can see already that it may be quite a bottleneck on gameplay performance once the map gets filled with a lot of enemies.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V8
Post by: lordpalandus on June 24, 2018, 05:48:44 PM
Released Alpha V8. Binary and Uncompiled build on first post.

Enjoy!
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V8a
Post by: lordpalandus on June 25, 2018, 12:58:14 PM
Released a Hotfix for Alpha V8.

Implements a better pathfind system for the "dumb" pathfind system (ie not the computationally expensive A*Star system); used by both the flee code and the move towards code. Also, added a message for when you hit a fleeing foe, removed debug items that I forgot to remove, and fixed a bug with Spellcasters not fleeing when hit.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V9
Post by: lordpalandus on July 01, 2018, 05:41:28 PM
Released Alpha V9. Another huge release, possibly bigger than Alpha 7.

Binary and Uncompiled Build on first post. Enjoy.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V9
Post by: Hooman on July 01, 2018, 09:02:17 PM
Huh, I'm getting behind on checking out these updates.  :P
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V9
Post by: lordpalandus on July 02, 2018, 03:52:52 PM
At this point in development, with the lack of user feedback, I'm mostly just posting these updates for my own benefit. It keeps me on track, focused on my task list and disciplined in producing a stable build each week, which is very motivating. Though, if no one downloads this week's binary, I'm going to stop posting it and only give a link if someone ACTUALLY wants to play it.

The whole point of getting the binary build up was so that people wouldn't have to struggle with setting up the python interpreter, but as the only binary build that got ANY downloads was V7 (V6 got 1 from I think Vagabond who posted the graphical error), I just don't see the point of going to the hassle of compiling a build that literally no one is going to play.

I'll continue to post the uncompiled one, that requires the python interpreter on one's system, for anyone who wants to try compiling it for their host system, that isn't Windows. But, if the Binary this week gets no downloads I'm going to stop building the binary unless someone actually wants to play it.

Then again, if I do get accepted into GOG's in-development program, they may stipulate that I have to stop releasing free builds here on OPU, if I'm going to have others on GOG.com / GOG Galaxy paying for it. But, I'll cross that bridge when I get there.

EDIT: Immediately after posting this, I checked the Mediafire page, and turns out 7 unique downloads of V9 has occurred. So at least that is a good thing.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V9
Post by: lordpalandus on July 04, 2018, 12:04:10 AM
After months of fiddling with the code and experimenting with various approaches, I've finally eliminated the Double Window issue.

There are a few more things I wish to do for Alpha V10, and may release it early so that I can do a GOG submission during the week (as they appear to not count weekends as business days so I'd have to wait more than 5 business days for a response), and that also means a bug-free build will be available sooner for those that got hit by any one of the three runtime errors I discovered.

EDIT: I've accomplished all I want to for Alpha V10's submission to GOG. However, now I am going to thoroughly test out the code and make sure that I get rid of all of the obvious, easy to spot errors, typos, and bugs... and eliminate them. Once I've done so, I shall upload V10 here to OPU.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V10
Post by: lordpalandus on July 05, 2018, 06:06:48 PM
Released Alpha V10, and have started the submission process to GOG.

If you encountered any errors or bugs in Alpha V9, I'm pretty sure I fixed all of them. (I hope so at least; I did spend about 2 hours thoroughly testing and gameplay testing)
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V10
Post by: Hooman on July 10, 2018, 02:37:13 AM
You really push through on this stuff. It's impressive.



I don't suppose there is a way you can think of to get more feedback?
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V10
Post by: lordpalandus on July 10, 2018, 10:25:29 AM
There are a couple ways I had considered, just haven't looked into it trying it yet. If the GOG submission doesn't succeed, I'll look into trying Plan B.

So, you are probably wondering what is Plan B?

Plan B is try to do a Kickstarter or Indiegogo campaign (like Thomas Biskup did for his Ancient Domains of Mystery) and acquire funding to give the game a graphical and audible makeover. In order for that to succeed, I'll likely work towards completing the game to a much greater degree, and then post the game in a few places. Namely:

1. There is a subreddit dedicated to Roguelikes, where I noticed some people have placed their free-to-play games there, for users to try out and get feedback.

2. The libtcod library is hosted on RogueBasin, a site dedicated to roguelikes, particularly ones that use libtcod library (which I am). Might be a good place to get feedback on the game.

3. I could try to get it on Steam. The reason I haven't thus far attempted it, is because it is costly to do so, with no guarantee on return. As they have nuked their Greenlight system, (for good reason, yet screws me over) the only way you can get your first game onto their service now is to pay $5,000 + other fees (need to do various paperwork, have a business bank account, and have a legitimate company name which will cost somewhere in the range of $1,000 to $2,500). If you make $5,000, then they will give you back that money. It is basically their way of discouraging crappy developers as most won't be willing to pay 5k deposit fee to get their game up and thus the number of crappy games will decrease. However, for legitimate developers, who lack the 5k easily, this creates a major problem. If I had tons of money to burn, I could pay that cost... but, then again, if I had tons of money to burn, I probably wouldn't be trying to make a video game anyway, as video games are extremely risky endeavours. Catch 22 situation.   
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 14, 2018, 12:19:56 PM
Released Alpha V11. No word yet from GOG.

Added a major system, Profiles, which now allows progression across playthroughs. Otherwise, mostly a heavy refactoring and removing redundancy build.

Enjoy
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 18, 2018, 11:27:41 AM
I may be unable to post updates for a while.

My computer froze, and when I hard restarted it, it booted and then died about 30 seconds later with debug code 6F (MSI X99s Gaming 7 Mobo). Online it suggested to reset the cmos, and I did that. Now it boots to debug code 67 and stays there indefinitely. not sure how to proceed, but until I get it fixed, I won't be able to work on the code.

If anyone has a suggestion, please post it. Otherwise sorry for the inconvenience.

Edit:

1. After thinking about it for a few hours, I realized my nonbinary build has the main file uncompiled, so if I had to, I could install Python onto my older laptop and work on it. This wouldn't be desirable as I'd still lack access to all the other files, but if needed I have this as an option. If GoG doesn't accept the game then it probably wouldn't matter much to not post updates, while I get my main rig up and running.

2. I've had odd issues over the past several months that I attributed to my gpu, but now I think it was the cpu all along. I think the cpu has failed, which is why it gets stuck on a cpu related debug code. I think I'm still under warranty, so, could have it replaced but wouldn't have the computer until I'd get the part in saw 1-2 weeks. It might just need fresh thermal paste so will look into that first before doing anything else.

Edit2:

Nope, can't for whatever reason launch the uncompiled build. Installed python 2.7, installed three different VC_Redists and still will not launch. I can code it, but I can't run it and thus can't be sure if my changes are being successfully applied. Keeps spewing the error about not finding a file "api-ms-win-crt-runtime-l1-1-0.dll" is missing. And most sites online state that it is commonly a problem of a bad VC_Redist install. I installed three different versions, and hit repair as well for each, but nothing. So, looks like I am FUBAR. So, yeah. Sorry. NOTE: Laptop was bought in 2010, is 64 bit Windows 7 and downloaded three 64 bit vc_redist builds off of Microsoft directly.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: leeor_net on July 19, 2018, 09:18:48 AM
This is precisely the reason you should reconsider using source control. You can use GitLab if you want a private repository. But basically yeah, this I learned the hard way years ago when a hard drive crashed on me and I lost everything on it.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 19, 2018, 02:34:23 PM
Live and learn. In the future I'll ensure that I have access to my uncompiled files at anytime.

Anyway, today is the two week mark for when I sent in my game submission. According to the automated response sent on July 5th, it says that due to an increased interest in their Indie program, if a game is not replied to within 2 business weeks, then it should be assumed that they have denied the game.

So... unless something changes in the next few days, I've been ghosted by GOG. So... while I lack access to the code, I'll take the time to plan out my next few steps. I think the game could be something great, but it is possible it got lost in the sea of titles trying to get GOG's attention. I'm sure this is likely caused by Steam closing down Greenlight. I haven't fully decided on how to proceed... but the three options currently available to me are:
1. Work towards Plan B.
2. Look into learning OpenGL and rebuild the renderer to use the GPU over the CPU. Likely require a huge code rebuild and/or abandoning the libtcod library altogether.
3. Abandon the title, and start working on my next title... either a Shmup or my aforementioned Outpost 2-like game I hinted at.

As I currently cannot test my code, (as windows/python refuses to compile the .py files on my laptop), I will be missing this week's release (unless my brother in-law, who is a computer technician by trade, can figure out what is wrong with the computer before Saturday/sunday)
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 19, 2018, 09:58:23 PM
Actually, quick question:

I noticed with my Alpha V10 build, released on July 5th, that there was a single download of the binary build. Anyone here download it?
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Vagabond on July 20, 2018, 12:56:36 AM
Sorry to hear about your computer crash. How many days of development are you going to lose if you cannot access the hard drive?

I would encourage you to consider taking the game to completion over abandoning it to start a new title. Even if GOG doesn't take it, there would be a lot of good experience gained from the process. Nothing wrong with releasing it free of charge just to get your work out there if it doesn't seem marketable.

I downloaded it a while back and toyed with it some, but don't remember which version it was.

-Brett
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 20, 2018, 07:37:31 AM
Well, it depends on the problem. If the cpu somehow got unseated, it is likely an easy fix. if the cpu is completely borked, then dunno. I'm currently using this time to give my code a hard personal look and focus on designing or redesigning certain aspects of it.

For example the 26 item limit in the inventory is particularly frustrating. So I'm looking at designing a junk bag to store excess stuff while only the best stuff is in your inventory and still allows you to keep collecting loot, as scavenging useless items is a good source of runic shards.

I may not have considered it if I hadn't been forced to take a break from development. So I'm taking the time to think hard on various parts of the game and address them. So despite not been able to code, I'm still trying to at least work on design and implementation of the codebase at the present time.

Yes you are right. Completing something can be its own reward or a stepping stone to something else. Plus there is still things I feel I can learn from a Roguelike so, I'll work towards Plan B, whether it will be successful or not. Garnering an audience with a free title I supoo could be useful as well for when I do the next project... A group of potential testers if you will.

Well, the only version you posted any feedback on was BinaryV5, the first Binary build. Current Binary is V11.

EDIT:

Got an official response from GOG that simply states "I'm afraid that we will stand by our previous decision and pass on the game." An entirely useless response, but at least I didn't get ghosted. Regardless, I'll now start to work towards Plan B.

I'll work on fixing up a few of my implementation details and systems, for a release or two, and then I'll start submitting builds to the Roguelike subreddit and Roguebasin (where the tutorial author and libtcod library originate from) and look for feedback there. If there is interest, I'll see about working towards a kickstarter or indiegogo. If there isn't interest, I'll complete the title and just release it as freeware, before moving onto my next project.

Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on July 22, 2018, 07:14:37 AM
Quote
So, you are probably wondering what is Plan B?
It's a birth control pill  ;)


Agreed with Leeor about using source control. It can be a pain to learn it at first, but it's actually quite quick to pick up, and incredibly useful. It also turns out to be strangely fun. There has been research that's found programmer happiness is positively correlated with the number of version control commits they do in a day.

And in the case of computer repairs, or visiting somewhere else, it can let you access code and move development to a new computer quite easily.


As for the C Run-Time (CRT) problem, that is usually solved by installing the appropriate Visual C Redistributable Package (VC_Redist), however, you need to install the correct version to get the correct DLL. My googling on that DLL came back with a reference to Visual C++ 2015 (x64).
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 22, 2018, 08:30:13 AM
Birth Control = An exterminatus for your vagina. Or is that an abortion?

As far as the research goes, I think that it is related to how much proof of progress a programmer has done in day rather than just SVN commits, as I feel that way whenever I update my changelog and can see what I accomplished in a day.

Well, I tried 2015, 2012, and 2008, redistributable packages, all 64 bit, and they all spouted the same error, so dunno.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: leeor_net on July 22, 2018, 09:36:46 AM
Birth Control = An exterminatus for your vagina. Or is that an abortion?

Plan B is a brand name of a 'morning after pill'.

Well, I tried 2015, 2012, and 2008, redistributable packages, all 64 bit, and they all spouted the same error, so dunno.

Is the code compiled as 64 bit or 32 bit? If 64bit isn't working, try 32bit. They are not interchangeable.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on July 22, 2018, 11:33:13 AM
You're probably right about the changelog updates. That's pretty close to writing commit messages.

Good point about the 32-bit/64-bit differences. It might help to install 32-bit versions of the redistributables as well, or change which version you're using.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 22, 2018, 01:54:09 PM
Only problem with that is that my original python code was built for 64-bit, as the Python Interpreter and the Libtcod Library have 32/64 bit versions. So I do not know what will happen if I try using a 32 bit redistributable with python code, interpreter, and libtcod library that is all 64 bit. It might work without a problem, or it might crash my machine.

Honestly, I'm okay with not being able to code on this laptop. It has two odd quirks, that would drive me crazy with programming. For some reason after typing text for a while, there is like a hiccup with my CPU and the cursor jumps to a previous section in the text file and text starts appearing there. Also, sometimes when saving a plain-text file, the laptop screws with the paragraphs and deletes some. If you do CTRL+Z, it restores them, but yah, if you didn't notice it and closed the file, the paragraphs would be lost forever.

Truthfully though, not feeling like I have to code is actually letting me catch up on some things in my life that I've been neglecting, that brought joy to my life. Things like writing short-stories or drawing stuff on my sketch pad and of course getting some exercise.

Plus, I'm using the time to take a critical look at my code and gameplay systems, and I'm already realizing areas of possible improvement, where I could reduce unnecessary complexity in some areas and build depth into others. So, this "forced break" from the coding has actually been quite beneficial... surprisingly. As for the computer itself, my brother-in-law thinks it will be a simple repair, but as he does most of the house chores and takes care of the baby, while my sister works as an Oncologist (proly butchered the word; Cancer-Specialist Doctor, basically), he doesn't quite know when he will be able to get it done.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on July 24, 2018, 02:19:05 AM
The 32-bit and 64-bit files are independent. They don't overwrite each other. You can install both if you want to be able to run both 32-bit code and 64-bit code.

I had similar problems with the mouse cursor on my laptop. It was because I was accidentally leaning on the touchpad for the mouse as I typed. It would register clicks, and move the cursor somewhere seemingly random, or click and drag, which would select text, and then cause me to overwrite it. There is usually a hotkey to disable the touchpad, which should prevent accidentally clicking on it. The exact key varies by model, but it's usually something like <Fn> + <F7>.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: leeor_net on July 24, 2018, 05:12:46 AM
Was gonna say, that has nothing to do with the CPU.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 24, 2018, 07:14:42 AM
That I didn't know about. I thought it was either 32 bit or 64 bit VC_Redist, not both. I'll try downloading the 32bit VC_Redist and see if it solves anything.

Also good to know about the laptop. That probably is what is happening.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 27, 2018, 08:24:19 PM
An update this week is looking unlikely. I haven't been idle however, and have a large list of actionable work that I'll get to doing the moment I have the rig available again. When I've completed the work in the list, then I'll look into releasing the build on the Roguelike Subreddit and Roguebasin and see what feedback I can get.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on July 29, 2018, 02:31:39 PM
Question: If this roguelike is crap, or you simply didn't like it (because you don't like roguelikes), would you hesitate in telling me so? It would be useful to know why people are downloading builds, but never mention something as simple as: it is bad or it is good. Thoughts?

I ask because I've had basically the complete absence of feedback. That can mean people are liking it (as people who like something will rarely post good things) or it might be so bad that people try it for 5 minutes and immediately lose hope on it and don't bother to leave even a bad review, as no one is paying for it thus no one loses something for downloading it.

EDIT: I ended up releasing V11 onto a subreddit for actively developed roguelikes and got some feedback on it. All three people who tried it stated that the font size was too small and that was why they couldn't get into the game. So, my next build will feature larger font size. If I hadn't gotten feedback from reddit about it, I'd have continued to work with the tiny font size that I have been using for 5 months. It is really good to know what the problem is so that I can work on fixing it. Well, one of the problems at least.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on August 04, 2018, 11:43:55 PM
For me, I haven't been able to build it on Linux. I never figured out how to get libtcod working. Hence I haven't had a chance to play it. Sometimes though I'll be curious about development and download the package to look at the code.

With the previous game, it was playable on the web, which made it much easier to test out. No download or installation required.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 05, 2018, 12:33:28 AM
Here is the page I used to get libtcod working for my main rig. Might help you out:

http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod,_part_1

EDIT: I think I know why python won't work on the laptop. The last time I did any major updates, was in mid-2014. The universal C runtime (CRT) came out in 2015, so my computer doesn't actually have the necessary runtime installed, hence why the error of not finding it. Now... to get the CRT for my laptop and see if it solves the problem.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on August 05, 2018, 02:24:51 AM
Ahh, ok, that link helped. Nice clear instructions for compiling libtcod on Linux. It was a slight variant of the usual compile procedure. I noticed there was no install rule set for the Makefile, so the process felt a bit clunky, manually copying files around, but I got the game to run.

My first thought was indeed the font was way too small. That made it rather hard to read.

My next thought was, I had no idea what keys did what, or how to find out.

Looking forward to the font updates.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 05, 2018, 10:54:49 AM
There is two ways to find out the keys. Read the Readme file that comes with the executable. Or hit Shift + / (the ? key). At the end of the story popup, at the start of the game, it states to hit Shift + / to see the keybindings and then directs you to the tutorial.

I suppose if the font was too small, you'd probably have missed that. Anyway in other news...

Windows Update is being a real ass. To get the Universal C Runtime, I need to get it from WIndows Update... it downloaded, and installed 70 updates; when it went to configure them, only 6 were successful. There is a standalone installer for the CRT, but, it just hangs/freezes/locks up/is a piece of shit for over 10 minutes and does nothing. So I'm stuck with Windows Updates. Maybe if I install them in incremental steps, they will work. Probably not though.

This is a problem because my main rig is still down, and my brother in law who is good with computers, is thinking it is a motherboard failure, but is still trying things out. If I can't get the CRT on this 2011 Win7 laptop, I cannot compile my code or even run my own binaries, making development impossible.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on August 05, 2018, 11:30:14 AM
I managed to compile and run it from Linux. You can develop in a Linux virtual machine!  ;) :D ;D

Or maybe you can switch to a secondary task, such as learning to use Git (https://github.com/jlord/git-it-electron#what-to-install).
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 05, 2018, 01:03:05 PM
WINDOWS UPDATE = igjalkgnaoinalnan;reagn'jlkasdlgkja029090fm90am09remg9eugn9-7834n97bhufnugans9ha7dsbg7ahr9ahwe89ghae8gha0wh9gehw90ghw09hg09whe490gha42ihgoseifoashdf... expletive deletive.

I cannot install the universal CRT at all. I've tried to install updates 4 times now with Windows Update, and only 1 out of like 40 updates is successfully applied and then none get applied. There is a standalone installer, that appeared to install it, and then when I restarted it as requested, it failed to it apply it. And now, when I try to launch either Windows Update, or the standalone installer, it gets stuck in an infinite loop, and then after like 15 minutes, finally crashes.

It is impossible. I cannot continue development of my python game on this machine. Windows simply will not cooperate. I need the universal CRT in order to run or compile anything with Python in it.

Some users stated that you can get the universal CRT by just installing the VC_Redist 2015 package. I've tried that method 4 times now, either with just repairing the installation, or using Control Panel's remove program and then reinstalling the VC_Redist 2015 package. Nothing is working so I am ... adofhaofhoaisdhgoiahogihaoighaohfoiahogiahoighoigh209049au2094j09jg90sdjg09aj09gj092jga09d09ghaw09hw09ha0940w9hg09hw09h409hw09hgw09hg90hw9g0h09gh309hw09gh9w0hg ... Anyways.

If my brother in law can't find a problem with the computer that isn't the motherboard, and fix it, then I'm probably going to be unable to code for at least a month, if not longer. There is nothing I can do... even if I had the source files, I couldn't do anything with them, because Microsoft is a 190na9naugnsd98nga809dsg8a0gn08asd0gadgnjadgnoausdng098nasoogindngaiidsongidang0dnsagalgnasdlkalkkjlkwjlkanglksmlnsadlgknlkgnlkajglkajdglkjadslkdgjalkdgjl and can't create a serviceable Update system that works most of the time without screwing everything up. I effin hate Windows Update.

When I visit my brother in law next, I'll grab my source files off my computer, and likely have to order in a new motherboard. By the time I get the motherboard, I don't know if I'm going to have the desire to continue developing it, and maybe just move onto the next project. Effin Microsoft and their damn dependencies that refuse to install.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 06, 2018, 12:52:02 PM
I hate technology. I got the main rig off my brother in law, and brought it home. It booted up, and got past Post, and then got stuck at a DHI Shell, and mentioned that no map could be found. Looked up online, and that meant that it could detect no HDD or SSDs. So I replugged in the SSDs and HDD... and it is now back to not posting and gets stuck on 67 again. I disconnected both HDD and SSD, and it is still stuck at 67. I'm at a loss, and I'm frustrated that the computer showed signs that it was still functional and is now back to the same old shit that I ran into 3 weeks ago.

It is possible there is a loose wire somewhere and that by removing the HDD and SSDs originally solved the issue, but by reconnecting the two, the issue has returned. However by disconnecting them again, it hasn't solved the issue nor has reattaching the wires to the mobo. I feel like smashing the computer with a sledgehammer, for giving me false hope.

Not sure how to proceed now.

EDIT:

I'm not sure what I did, but I successfully managed to get the universal c-runtime on my laptop working, and can launch my game now.

EDIT2:

Managed to get my uncompiled source files off my SSD. I'll upload a copy to the first post, and to my mediafire... in case this laptop ALSO fails.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on August 07, 2018, 12:58:17 AM
Again, take a moment to learn Git (https://github.com/jlord/git-it-electron#what-to-install). It will pay off huge over the years. And a basic tutorial shouldn't take very long to work through.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 07, 2018, 10:15:04 AM
Alright, I'll take some time to look at Git.

I was wondering... when you say the font size is too small... I noticed on my laptop, that the font size was the same size as it was on desktop, albeit the screen was too large. Do you find the font size of the text on the forums to be too small? I ask, because the new font of 12x12 is the same size as the forum text now, and I find the text ingame to be much easier to read. The old font size was 10x10.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on August 08, 2018, 07:16:11 AM
How am I supposed to compare? You haven't release the changes with the new font size yet  :P

Hmm, just noticed the "h" doesn't seem to render:
"w  e r e"
"P  y s i q u e"
Though I also noticed hitting a key caused a column of letters to disappear, which lined up with the missing "h"s.

I also found the spaces between letters made the text much harder to read.


I didn't notice any mention of a help key, nor was I able to activate a help menu.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 08, 2018, 10:25:34 AM
The h not rendering and the column of letters are associated with a bug with the menu code. I had thought I had solved all instances of this bug, but apparently not. With the font change, I will be doing an UI overhaul, so I'll make sure to address the bug then.

Yes, I've noticed that as well with font size 10. Font size 12 doesn't appear to have the same issue... or if it does, it is much more marginal.

I double checked, and I did indeed mention the help menu and the tutorial, in Binary V11. It is at the end of the story window, after the all capitalized text. The first sentence mentions the help menu. The second, the tutorial. When I redo the story, as with the font size increase is now TOO big to fit in the new window size, I'll look into making it more obvious.

For reference: Help Menu (Shift + /) and Tutorial (Shift + '). These are also mentioned in the Readme file... though, people rarely readme files anymore so I'll forgive you for not reading the readme.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on August 08, 2018, 10:56:14 AM
I had tried pressing Shift + /, as you mentioned in a previous post, but it didn't seem to do anything for me. Though I might have been stuck in a sub-menu without realizing it.

As for the in game instructions, I did skip reading the big block of text. It's just too small of a font to read comfortably. I'll take another look once the font size issue is dealt with.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 08, 2018, 11:32:02 AM
Yes, when in a sub-menu it won't work. If you were able to move your character around the map, and then hit shift + /, then it would have opened the help menu.

Here is two screenshots, to give an indication of changes in font size.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: Hooman on August 08, 2018, 02:33:23 PM
That's much easier to read. The letters are large enough to be clear.

I still find the spaces between characters within words slows down my reading. I vaguely remember reading an article years ago that talked about a scientific study on how spacing affects reading, which suggested spaces within words makes it harder to read.

Not sure how attached you are to that spacing, or if it's part of the engine you're using. Looks like it's part of the engine.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 08, 2018, 05:20:49 PM
As far as I can tell, it is a limitation with the libtcod library. You need to use, what I think is a sprite sheet, with all the various characters and symbols off a font file (included file is the font size 12 file). Why it has such large spaces in some words, and other times have like no spaces, I'm not entirely sure why that is.

I can definitely agree that having too many spaces in a word, artificially lengthens the word and makes it harder for me to read it quickly. Probably a perception related thing where the user expects the word to be longer, because it takes up more space that it usually does.

I'll fiddle with the UI, as it might be a problem created on my end. Maybe by giving a window too much excess space, it spreads out each character to fill that space more effectively. Or maybe legacy code from the tutorial creates the text issues. Or maybe it was fixed in a later version of libtcod library, and I'm just using an outdated version of libtcod.

Or maybe there is a text-formatting option in libtcod that isn't being used, which could be used to shrink the spacing of characters.

EDIT: I might be able to have Alpha V12's release out tomorrow. I am fighting with a few annoying interface bugs with the changes from font 10 to font 12, so I am not going to be able to promise a release. I've solved some of the interface issues, but not all of them, and many of them are extremely complex in nature, so it is slow, troublesome, and often times painful work to address these interface issues. And as the interface is key to gameplay, the game isn't really in a playable state at the present time.

EDIT2: I won't be able to release it today. However, I have made immense progress in getting the new character customization system to start working and I'm slowly but surely solving a whole bunch of interface related problems along the way. I hope to get this release out as soon as possible, but this all depends on how much more grief the interface will give me, between now and then.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: lordpalandus on August 14, 2018, 09:59:08 PM
I've progressed immensely with Alpha V12, and it is nearly ready for release. I'll be releasing Alpha V12, as both the uncompiled build and the binary build here on OPU, and I will be releasing it on the roguelike dev subreddit, to get feedback from there. I have a few story changes to make, which I'll address tomorrow. I've made sure that the game compiles (and it does) on this laptop and I've tested the binary built, and it works. So, I'll finish up the story changes and then release Alpha V12. I'll also give a brief explanation of why it took over a month to get Alpha V12 out, when I had been doing weekly builds.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V11
Post by: leeor_net on August 14, 2018, 11:29:53 PM
As far as I can tell, it is a limitation with the libtcod library. You need to use, what I think is a sprite sheet, with all the various characters and symbols off a font file (included file is the font size 12 file). Why it has such large spaces in some words, and other times have like no spaces, I'm not entirely sure why that is.

It's called a 'glpyh set' or 'glyph table' and the issue is a problem caused by using a variable-spaced font (like Arial) in a scheme that requires a mono-spaced font (like Courier New). Basically, the library is expecting a monospaced font and so ignores any notion of 'kerning' which is how variable spaced fonts can adjust each character's distance from the other to produce legible words.

Use a monospaced font instead. It will eliminate the problem you're seeing. Not all monospaced fonts are serif'd. A good resource: https://www.1001fonts.com/monospaced-fonts.html
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: lordpalandus on August 15, 2018, 10:12:48 AM
Good to know, but it doesn't solve my problem. The link has downloads that uses the .ttf format; I need a glyph table that uses the .png format. Also the .ttf files do not have all the symbols I need, that are offered in the .png files...

EDIT: I looked up online what are some common monospaced fonts and then checked if I had any of those font pngs that came with libtcod. Apparently Consolas is a monospaced font and it has a png for it. I swapped it out with the Arial I had been using... it improves readability significantly... but... the spacing issue is still there. So, I'm thinking there is something else going on behind the scenes, with the libtcod library that is modifying the spaces as the monospace font didn't solve the issue. I'll likely keep the new font as it is easier for me to read everything but will have to keep searching to find out what the issue is with spacing.

EDIT2: Looks like it is an inherent problem with the libtcod library. This guy (who I've also seen on the roguelikedev subreddit) explains the problem in good detail = https://www.gridsagegames.com/blog/2014/09/fonts-in-roguelikes/  (starts talking about the libtcod issue at the header "Grid-Based Display"

EDIT3: Alpha V12 is now released. First post updated.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: leeor_net on August 15, 2018, 05:54:33 PM
... really?

Try this link (http://lmgtfy.com/?q=bitmap+font+generator).
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: lordpalandus on August 15, 2018, 06:35:12 PM
Why was that necessary? Seriously, why?

I stated beforehand that I was using a .png file for the font. You could have mentioned that in order to use a TTF file for my purposes, that I'd need a font generator, instead of just saying here is what you need without explaining how to make it useful. I am still new to development; I don't know the jargon, the acronyms, or even what design methods I'm using that the gang of four would recommend. I've never been exposed to this kind of stuff before so how would I know that to use a font file I'd need a font generator. 

If you don't know what to google, how do you google it? Hmmm?

If you have a problem, but don't know how to put that problem into words, or you don't know fully what the problem is, how can you find a solution?

 

Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: leeor_net on August 16, 2018, 06:37:54 AM
There's something to be said about not knowing something and asking for help versus asking to be spoon fed and hand held through a process. Your response made it obvious you didn't even try, you immediately dismissed it.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: lordpalandus on August 16, 2018, 09:43:26 AM
You give me a file format and you expect me to know what to do with it? How am I supposed to know that you can convert a TTF file to a PNG? I have never done that before or even heard of that before.

When someone doesn't know anything on a subject, is it unfair to expect at least some spoonfeeding? I get it that you don't want to do all my work for me, but giving me a resource when you could clearly tell I knew absolutely nothing on the topic; after all I did call it a sprite sheet, and not a glyph table... I've never worked with fonts before.

An analogy: It is like taking a young student into a metal-working workshop, giving them a piece of metal, and then telling them to make a ring out of it. They don't tell you anything about safety (except to wear safety equipment but not how to use equipment safely), or how to use the various tools available to you or even suggest a specific order to the process of creating a ring from the lump of metal you have and then leaving you to it. Case in Point, this also happened to me in 8th grade, and my teacher got pissed off at me when I wasn't doing it right, despite not taking the time to give the barest of spoon feeding so that I could help myself. Eventually the teacher got so mad at me, that he ripped the metal out of my hands and made the ring himself. Suffice to say, I hated that and I learned nothing from the course.

I'm still quite new to programming and development. You have like 10 years of experience on me; things that seem simple to you, are likely nearly impossible to me... like building a custom interface. If you are going to offer some complex technical help, with jargon that I've cleared never even heard of before, you need to be willing to grill me on the basics and give me some spoon feeding on the process, so that I can then take it from there.

If you had said that you can find monospaced font files on the internet, they come in ttf format and you can find a program to convert it into a font that I could use in my game, then that would have been enough information to get me started and to help myself with getting more information, if I get stuck. But leaving the font generator out, I did not know that it was a needed component in the process and didn't know that I should even look for one.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: leeor_net on August 16, 2018, 06:28:25 PM
I'm still quite new to programming and development. You have like 10 years of experience on me; things that seem simple to you, are likely nearly impossible to me...

25 years, actually (I started learning programming when I was 10)

Anyway, I can appreciate your point of view and you're right, sometimes I forget that you aren't drawing off two and a half decades worth of research and experience. Still though, there are often times when I don't know terms and jargon and yet I've never really found that to be a roadblock. With Google, it's very easy to get information and many times I have to sort through a lot before I find what I need. Good example is the connectedness algorithm used in OutpostHD -- I'd never had to solve that problem before so I started by searching for something similar -- the pipe game algorithms -- which lead me to the term `connectedness` which lead me to depth-first and breadth-first graph searches. To me suggesting monospaced fonts ought to have been enough -- from there you'd look for how to make an image file out of a truetype file which would have eventually lead to a bitmap font and ultimately a bitmap font generator. It requires some reading, yes, but that's part of the discovery and the understanding of it. Having complete answers dropped in your lap does a disservice to you, it forgoes you learning the hows and whys of things which in game development is far more important than you may be aware of.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: lordpalandus on August 16, 2018, 10:03:27 PM
Okay, 25 years.

I understand what you are saying, but it isn't quite that simple. How for me to elaborate...

If a person has spent enough time with something, they have a whole lot more "memories/experiences/knowledge/etc" to draw on with their brain's heuristic algorithms to figure out a way around a problem. The more times you use heuristics, the stronger that portion of your brain will be, allowing you to get around more complex problems. If you have very little knowledge on a subject, it is nearly impossible to figure out a solution, using straight heuristics, as the brain lacks sufficient data to create a guess or even an assumption to help the person get around the problem.

So, in relation to this, you may know little about fonts yourself, but your years of experience gives you the ability to figure out heuristically what you might need to get around the issue. I lack those years of experience, and I lack the experience with fonts and thus I find myself getting stuck and requiring more info.

Discovery is great when you can discover it on your own, but until one has strengthened their internal heuristics, spoon feeding is often necessary to get a point across. Having complete answers CAN be a disservice; not knowing any way of creating a main event loop or even how to proceed and then given one is not a disservice. However, once you do know how to create a simple main event loop, it would be a disservice giving them the answers for optimizing the main event loop or eliminating possible memory leaks; learning how to do that is an important aspect of coding.

A person needs a foundation to build anything from; once that foundation is present, then it would be a disservice to just give them a full featured house, but until that person has a foundation, they need to be spoonfed to get them to the point of having a solid foundation. That is why people often ask for help online or do tutorials; they need that foundation before they can move forward and make something beautiful.

Or think of it this way: If you were 12 years old again (as I have about 2 years worth of programming experience), and someone gave you a true type font and told you you could use it as a png file, despite it being a ttf, would you be able to say that you could figure out that you'd need a font generator to solve that problem, despite never touching fonts up to that point (assuming of course there was a search engine available and a font generator out there)?

Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: Hooman on August 20, 2018, 11:18:20 PM
Huh, that article about the fonts was quite informative. Seems libtcod made the decision to use square spaces for fonts to preserve x/y distances on maps, while normal reading typically uses fonts that are taller than they are wide. Hence, if you're limited to a single font, you either have expanded text with extra spaces making it harder to read, or you have squished maps where things look much closer in the x direction than the same distance in the y direction.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V12
Post by: lordpalandus on August 21, 2018, 12:33:55 PM
Yeah. I wonder though if one could use two fonts with the libtcod library; one for the grid-based maps and one for text-based interfaces. I'll look into the feasibility of that later. Right now, I'm working on learning how to create custom menus and interfaces, and hopefully have a redesigned interface for at least a few of the menus for Alpha V13.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V13
Post by: lordpalandus on August 25, 2018, 12:26:00 PM
Alpha V13 is released.

Mostly a quality of life update, to make it easier for new players to get into the game.

Spent most of the week working on learning how to use Class Inheritance, new ways of manipulating Strings, and work towards an interface overhaul. Hoping to have some interface improvements in for next week's build.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V13
Post by: Hooman on August 25, 2018, 09:20:41 PM
I'm adding a Linux usage note, mostly so I don't have to look this up again.

The libtcodpy library can use the environment variable LIBTCOD_DLL_PATH to find the libtcod library. That means when you compile libtcod, you can do a usual system install (sudo make install) to copy the files to /usr/local/lib, and then set LIBTCOD_DLL_PATH=/usr/local/lib before running the game. This can be done either on the line to run the game (LIBTCOD_DLL_PATH=/usr/local/lib python Game.py), or you can permanently set the environment variable in ~/.profile or similar with export LIBTCOD_DLL_PATH="/usr/local/lib".

Source (Note comment #3 from from libtcodpy/__init__.py):
Code: [Select]
    pathsToTry = []
    # 1. Try the directory this script is located in.
    pathsToTry.append(os.path.join(__path__[0], libname))
    # 2. Try the directory of the command-line script.
    scriptFilePath = sys.argv[0]
    scriptPath = os.path.dirname(scriptFilePath)
    if len(scriptPath):
        pathsToTry.append(os.path.join(scriptPath, libname))
    else:
        pathsToTry.append(os.path.join(os.getcwd(), libname))
    # 3. Try the environment variable LIBTCOD_DLL_PATH.
    if "LIBTCOD_DLL_PATH" in os.environ:
        envPaths = os.environ["LIBTCOD_DLL_PATH"].split(";")
        for envPath in envPaths:
            if os.path.exists(envPath):
                pathsToTry.append(os.path.join(envPath, libname))
    # 4. Try the top-level path in the development tree.
    potentialTopLevelPath = os.path.realpath(os.path.join(__path__[0], os.pardir
, os.pardir))
    pythonPath = os.path.join(potentialTopLevelPath, "python")
    if os.path.exists(pythonPath):
        pathsToTry.append(os.path.join(potentialTopLevelPath, libname))
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V13
Post by: Hooman on August 25, 2018, 09:54:13 PM
Ok, way too much wall of text. It's particularly bad because the font spacing makes it so hard to read. I just wanted to play, but instead I was greeted with page after page of text. I got bored and stopped reading it. Even still, it was minutes before I even got to see the game.

The character selection was asking me to make decisions that could impact the rest of the game, yet I had no experience with the game yet to inform those decisions. At best I could use my experience from other hopefully similar games to guess what I wanted.

The game was asking me to name my character, while also simultaneously telling me this didn't really matter and had no impact on the game, and how my name would be capitalized. Way too much info. And if it has no bearing on the game, maybe it can be skipped, or delayed until later once I've had a chance to try the game.

For character naming, I rather liked how Final Fantasy 3 (FF6 if you follow the Japanese releases) introduced and named characters. They'd start off with a cut scene, show some character, build some back story, get some emotional engagement for the new character, and then and introduction of sorts, such as "why hello, and your name is...?", and then the character name prompt pops up. With a suggested name already filled in.

Naming of characters was nicely delayed until you know who the character actually was, what they were about, and had some emotional engagement as to why you should care.

As for the character classes, and attribute bonuses, that could also potentially be delayed until in game. Examples might be FF2 (FF4 if you follow the Japanese releases). They let you choose, and change, your profession during the game. If you've made a mistake about how you're developing your character, you can change focus and go down a different path. That doesn't play so well with race, which people view as unchangeable, but it does work with profession. Of course, that's not to say you can't delay the race selection in a similar manner to delaying character naming.

Another alternative is how Runescape worked (or the FF2 Japanese release, not released elsewhere), where character stat increase depends on what you do. The stats you actively work on are the ones that get better. Again, this delays or even eliminates the in game selection of what your bonuses will be.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V13
Post by: lordpalandus on August 26, 2018, 12:21:54 AM
I'm in the process of making an interactive tutorial, it just didn't make it in for this build. I also intend to make a help directory, and break up the walls of text into manageable reading bits, delivering a specific piece of information. The intent is that with the interactive tutorial, is to teach all of the basics of gameplay, and the help directory is used to refresh oneself on a particular topic, or learn about a more advanced mechanic. Also, most of the initial text can be skipped and read again later, either with the Help/Tutorial menus, or accessing it via the Pause Menu (esc).

Never played a final fantasy game. Most of the RPGs that I played always asked you up front to design your characters. However, they never really bothered to explain what different things will do. I tried to make the user informed about what each choice does... maybe I failed to provide enough instruction.

In most games, the name of a character is irrelevant. Even in story driven games like Mass Effect, your name is irrelevant except for your last name, which is Shepard. The reason I mention that the name has no relevance is that all the previous choices HAVE relevance. Thus, the player can name their character as they so please, and have no concern for the consequences.

The issue is that the characters are basically irrelevant in the grand scheme of things. Well, at least the "bodies" are. What I mean is that the Chaos God has trapped your soul in the Cataclysm of Chaos, and whenever you go insane, the Chaos God destroys your body, creates a new one, and sticks your soul into the new body. So, in a lot of ways your body is simply a temporary vessel, being used to accomplish goals until it's usefulness runs out, and the cycle repeats. Every time you go insane, you generate a brand new character, and are told that you entered the Cataclysm of Chaos as that person, when in reality, it is just something created with certain memories applied to the body. At least, that is how I was thinking of doing the lore. ... However, giving each character more backstory could be beneficial, so I'll look into doing that and add more character to the characters.

The secondary purpose of the interactive tutorial is to help the player figure out what kind of character they want to play as. However, with that said, you can always change your playstyle by putting the effort into whatever way you want to play. As an example, you might want to play as a powerful spellsword. You might choose choices to give your Physique a large starter advantage and then focus on building up Intelligence, and thus be able to build both attributes reasonably well. But, that is more for advanced players. The game gets a lot of inspiration from Elder Scrolls games, in that you can be whatever you want to be, but your starter choices make certain things easier and others harder. But, with enough diligence, you can take that berserker nord, and turn into an exemplary thief.

The last point is Attribute Training in a nutshell. If you focus on melee/martial, you train Physique. If you focus on ranged/stealth stuff, you train Dexterity. Etc... It is just that your starter choices impact how easily it is to train different Attributes.

Thanks for the feedback, and I'll see about integrating some changes into the next build.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V13
Post by: Hooman on August 26, 2018, 03:25:53 AM
Quote
In most games, the name of a character is irrelevant. Even in story driven games like Mass Effect, your name is irrelevant except for your last name, which is Shepard. The reason I mention that the name has no relevance is that all the previous choices HAVE relevance. Thus, the player can name their character as they so please, and have no concern for the consequences.

Why are you explaining this? ;)

As for backstory, I'm not saying you need to add that. In some cases, maybe you shouldn't. In Final Fantasy, I think it worked out well. I'm not so sure about a rogue-like.

Keep in mind that Final Fantasy, particularly FF3 (aka FF6), was a story telling game. A rogue-like has a much different focus.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V13
Post by: lordpalandus on August 26, 2018, 10:54:01 AM
I was explaining it because you seemed to have an issue with giving your character's name right away. The only real reason I take the player's name immediately is because the Chaos God is intended to use your name with their messages; doesn't do so yet, as I've been focusing on quality of life and usability features for the last couple builds.

It is true that many games will have you do a tutorial first and then name your character, ie Elder Scrolls games. However, as I currently lack the tutorial, I just request it immediately.

Mostly I was explaining it because not everyone has played a lot of RPGs and may not know that it is common practice to get a name up front immediately or that the name is basically just fluff.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V13
Post by: Hooman on August 26, 2018, 09:49:13 PM
... and why are you explaining that?  ;)
(Hint: I'm not looking for an explanation!)  :P
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V13
Post by: lordpalandus on August 27, 2018, 11:03:09 AM
Sometimes I reply to a question, without considering why I'm replying to a question. Other times, I answer because I can. Further times, I do as Cthulhu commands.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V14
Post by: lordpalandus on September 01, 2018, 04:41:50 PM
Alpha V14 Released.

Was a frustrating week designing out the new interactive tutorial and the help directory system, meant to supplement the tutorial. Tossed out several prototypes, and took me a few days to fully debug my new help directory system, so didn't get much in the way of code implementations done. However, as the biggest feedback from players is the need for a really good tutorial and better formatting for the help systems, I felt that prioritizing these this week was critical.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V14
Post by: Hooman on September 02, 2018, 10:28:14 AM
... I don't want a help directory. I don't want to read. I want to play!

The menu systems when starting the game seem a bit buggy. I get blank screens until I click the left mouse button. After each screen of text, it blanks out, and I need to click to see the next one. Additionally, it was eating most of the letters I typed when trying to name my character. Very frustrating experience.

Also, there is very little feedback concerning ranged attacks. It seems some monsters avoid me completely, where they don't come attack me, but I also can't get near them. If I click to do a ranged attack, then they attack me. After a few rounds of not much happening, I wandered off. At some point I was killed with no enemies around me, and some text that suggested I was killed by a ranged attack, though there was no obvious feedback that I was being attacked.

Also, I'm not sure I can see the entire text log at the bottom. I think it cuts off for me. I tried to enlarge the window (it's already max screen height), but the enlarge button doesn't respond at all.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V14
Post by: lordpalandus on September 02, 2018, 10:59:56 AM
I am aware that players don't like to read (which is surprising as so many people still want Game Manuals, for some reason and why many of the older roguelikes, like ADOM has a large Help Directory). However, the tutorial wasn't finished and I didn't want players complaining about CTDs or broken save files. The Help Directory is meant to supplement the tutorial when completed, and is also meant to phase out the huge walls of text, into smaller bite sized bits.

For the text input, how long was your name? Also did "backspace" help to clear letters so that you could enter in fresh letters?

Mouse support for menus is buggy; has been since the beginning. The tutorial maker added mouse support to the menus, and that then caused numerous other errors. I fixed or duct-taped those issues, but the big issue is the "double window" bug. For some reason, with mouse support, it creates two of the same window, overlaid on top of eachother. My workaround, which works with keyboard inputs, is to effectively make the window invisible. But for some reason, when you click with a mouse, the invisible window appears, creating a blank, black screen. When I figure out how to create good interfaces, I'll look into trying to solve the issue. It took me about 5 months to create a workaround for the double window (after trying out at least 30 other failed solutions to the problem), so don't expect a fix anytime soon. I've run through the code numerous times and I do not know how to solve it yet.

What is your threat value and their threshold values? If your threat value is <= to their threshold, they are non-hostile; this is called Passive Stealth (can read up on it in the Help Directory, under Advanced). If they are nonhostile, attacking them causes them to be hostile towards you. If they are a Treasure Fiend (black T) they always move two spaces away from you, unless you are using Active Stealth. If you hit a mage with a ranged attack, they flee, moving at two spaces per turn; if you attack an archer and get too close to them, they also flee away from you moving two spaces per turn. Most of this information is already in the game, and available for players to help themselves, rather than, say I spoonfeed them everything.

I'm not sure I know what you mean by no feedback. I regularly check my health bar, and scan my environment before moving forward. What about the message log? Any time you get attacked, a new message appears in the message log. I know that in most games, you have graphical animations or sound effects to produce feedback. In most roguelikes, the feedback a player gets is a change to their health bar or a message in a log. I understand in modern games this is insufficient and I do intend to build in more reliable feedback systems. When you say feedback, what kinds of things would you like to see?

The window mostly fills my tiny laptop monitor of 1366 x 768, with a bit of empty space on the edges. Vagabond mentioned back around V5 or V6, that he had a problem with the window size, that fixed itself by entering fullscreen (ALT + ENTER) and then hitting it again to bring it back to normal size. The window is a somewhat poorly designed terminal interface, and thus the only way to currently make the window larger is fullscreen (ALT + ENTER). I am looking into resolution scaling or aspect ratio type stuff, just haven't gotten to it with the focus on the tutorial.

Thanks for the input!
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V14
Post by: Hooman on September 02, 2018, 11:32:32 AM
The game seemed to be dropping random letters when entering the character name, as if the key was never pressed. It was intermittent. I had to press keys a few times repeatedly to get the letter to appear.



I think having to regularly check the health bar is an issue. If there are no enemies around, and no visible log messages (the log might overflow the screen), then it's very hard to see any unexpected health bar updates. If the health bar flashed, or if the screen flashed or tinted red when you were low on health, that would alert the player to trouble.

For a ranged attack, I would expect to see some kind of animation indicating a ranged attack.



The message log cuts off the last 2 lines when not in full screen mode. Using Alt + Enter works. The maximize button does not.



When there are many enemies on screen, I've noticed some performance issues. There is noticeable lag between pressing arrow keys and seeing the character move.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V14
Post by: lordpalandus on September 02, 2018, 11:59:05 AM
Okay. I'll look into it. The method I used for keyboard input may be the incorrect one to use (there is like 5 different functions it uses to take in input), so I'll see if I chose the wrong one for the job.

I am planning on creating a longer message log (again not a priority) as I really liked it with the old build with the smaller font. I'll see about trying to get the health bar to flash when low on HP, or tint the screen red or perhaps a popup window that says you are low health. I'll look into having an animation play when an attacker attacks you.

Maximize button not working isn't surprising. Annoying, but not surprising.

The lag is one of two things: 1) the method that the game uses for taking in input is creating the lag or 2) the enemy pathfinding code is computationally expensive. I'm leaning towards the pathfinding code being the culprit. Will look into ways of optimizing it.

EDIT: If I can get the tutorial done swiftly, I'll try to implement some of the stuff you suggested Hooman. If not for this build, then likely for the next build. All of your feedback definitely highlights areas where improvement is necessary, but as you pointed out yourself... you don't want to read. Thus, the priority for this week is to create an effective, informative, and interactive tutorial so that players can learn by playing rather than reading.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V14
Post by: Hooman on September 02, 2018, 10:03:58 PM
For the love of God, no popups!

Although it may be instructive to solve the keyboard issue when entering a character name, perhaps there is a better course of action. Consider this: The player starts up the game, and bam! they're in the dungeon. If they want to load a previously saved game, they can select that from the menu. Their current game is discarded. They want to choose a character class or profession, they do that in game, by finding some appropriate map marker or quest point and moving onto it. Choice selection is controlled by character movement, rather than a menu system.

As for naming the character, maybe just dump that feature. If it's really desired, perhaps add it in game, as a delayed choice. My preference is to just dump it though. Names are more relevant when you have multiple characters to control. For a single character game, it's just noise.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V14
Post by: lordpalandus on September 03, 2018, 10:37:12 AM
Ahh popups, the bane of players... unless it is a 4x game. I'll just have to find another way of doing it.

Interesting idea. Kind of reminds me of Dragons Dogma's character creation where you choose your starter class by picking up an item (a sword, a dagger or a staff) in a room.

I only really included the name as many games offer the ability to name your character. But in this game it is likely just fluff/noise, so I'll consider removing it.

Thanks for the input.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V15
Post by: lordpalandus on September 08, 2018, 02:56:16 PM
Alpha V15 is now released.

EDIT:

Although I didn't get it into this release (as the problem flummoxed me), I have managed to implement flashing health bars and flashing energy bars when below 25% of maximum values, into the next build. They do not strobe, but the flashing effect is quite noticeable, to help draw your attention to your health or energy meters.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V15
Post by: Hooman on September 12, 2018, 08:41:53 PM
Where did the enemies go? As far as the heath bar updates go, I couldn't find anyone to flash me!  ;)

The game got considerably easier though, and I was finally able to completely explore a map.

Side note, you've got kind of an open dungeon theme going on here. There isn't really a concept of rooms. Very unlike the original Rogue in that regards. I also didn't see anythings stairs like that suggested it would lead to a new dungeon, or back some way I'd come.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V15
Post by: lordpalandus on September 12, 2018, 11:42:58 PM
Sigh.

Anyways, stuff will be different for Alpha V16. Things will be made clearer. Sigh.

EDIT:

I get it, you do not like to read, Hooman. So, how would I, a developer, make a player such as yourself, aware that you are playing an interactive tutorial?

I mentioned in the first post of this thread, in the Changelog that comes with the game, and within the game itself that the first level has been made into the interactive tutorial... one you learn by doing, experiencing things, and exploring the level, free from enemy threats, while the player learns and masters the basic controls.

With the current iteration of the interactive tutorial, you are given a series of tasks, with instructions on how to complete those tasks in the Task List window (Shift + 1), and once you have completed those tasks you can leave the floor. In the next build, I am going to be making it clearer that the interactive tutorial is active, such as mentioning that you can view the task list with Shift + 1 (this keybind is mentioned once in the current build, but it can be easily missed).

Yes, I have noticed that as I develop the game further, it definitely lacks things that Rogue had, namely, Rooms, Permadeath from Death, and Food Timers.

As for your question, there is actually three possible exits to the level; one is found in a corner and the other two are randomly placed in the level somewhere. You'll know you found one if you either find the ">" symbol or an object called a "Descending Runic Gate".
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V15
Post by: Hooman on September 14, 2018, 11:03:37 AM
I explored the whole map, and nothing stuck out as an obvious gateway. Maybe a different symbol or color would stand out more. I suppose I didn't read any of the instructions, but then, after having to click through so many walls of text I had become largely blind to instructions.

Would be nice if exits were highlighted even when not currently visible by the player. Something to make them standout even when the player is far away, though only after they have first been uncovered.

For an interactive tutorial level, perhaps consider making it smaller. You probably don't need a full sized map for a tutorial. I think a smaller map with more limited play space would go better with a smaller more limited tutorial environment. At the very least, there would be a visual cue that something is different. As for monsters and combat, those probably are an important part of an interactive tutorial. Though I noticed previously the levels seem to spawn an infinite and increasing number of monsters. I think a tutorial should have a set number of monsters.

As for rooms, they can help guide an interaction. They limit options. You can only leave through a set number of corridors. That would be particularly useful in a tutorial, where you want to guide a player along a specific path. As the game progresses the number of options can be slowly increased. Perhaps more corridors, to larger rooms, to merged interconnected rooms, to open areas with a handful of obstacles.

I think the open dungeon theme reminds me a bit of the Caves area of Diablo. I think I would rather start in an area like the Cathedral or the Catacombs, where movement is more guided.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V15
Post by: lordpalandus on September 14, 2018, 12:44:20 PM
Well, I've actually already implemented in this coming build something to address that. The Runestone, Primal Chaos Portals and Descending Runic Gates are now prismatic, constantly changing colors and will even do so when they are out of FOV. The Horde Portals and Ascending Runic Gate are chromatic (not sure right word), and shift between black, grey and white constantly.

The reason I chose the format for the tutorial is to have the tutorial representative of the actual game; exploring a large map, collecting loot, training skills and attributes and gaining levels. The first level, is the "basics" tutorial; it is meant to teach the player the basics of gameplay, such as using the mouse to look around, perform various common commands like crafting items, and exploring the map, without being constantly attacked. The second level, will be the "advanced" tutorial, introducing the player to combat, horde monsters and other advanced topics, and the advanced tutorial will be in the coming up build. If I have time, I'll include the "expert" tutorial, involving Primals, and Endgame related stuff, but may not have time to do so with the other stuff that needs to be in for this build. More likely I'll wait on the expert tutorial until I've figured out how to code in the Portal Levels, Chaos System, Harvester (ever wondered where all those Crystallized came from?), and Primal Chaos abilities are put in.

Again, that (rooms) would defeat the purpose of having a tutorial that represents actual gameplay. The problem I find with many tutorials, is that you are thrust in essentially a controlled laboratory experiment, that is hardly ever representative of actual gameplay, and are taught mechanics that are rarely if ever used in the actual game. For example, while doing the Dishonored 2 tutorial, you have to do a sprinting slide maneuver. In the actual game I never found an actual useful situation where that maneuver would be useful... in the tutorial you had to use it to get under a gate that would close too fast if you simply tried to run and crouch under it.

Don't you mean the lava caverns in Diablo? There were cave sections in the catacombs as optional quests, that were very guided and restrictive.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V16
Post by: lordpalandus on September 15, 2018, 12:11:19 PM
Released Alpha V16.

Another large release, and updated the first post with a list of major feature changes.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V17
Post by: lordpalandus on September 22, 2018, 01:39:40 PM
Released Alpha V17.

Mostly a major bugfixing release, with a little more content and the Advanced Tutorial now fully works.
Title: Re: Cataclysm of Chaos, Remade (ASCII) - Alpha V18
Post by: lordpalandus on September 29, 2018, 10:00:20 AM
Released Alpha V18!

This build started work on the Interface overhaul, and about 50% of the overhaul was completed this week. Also fixed a variety of bugs that occurred after the user finished the tutorial.
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V19
Post by: lordpalandus on October 06, 2018, 11:47:58 AM
Released Alpha V19.

Stuff happened. Nuff said.

Also game name change!
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V19
Post by: Hooman on October 06, 2018, 01:29:47 PM
I like the name change  :)
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20
Post by: lordpalandus on October 27, 2018, 01:02:48 PM
Thanks, Hooman (sorry for the delayed reply). I like it too, and so does the internet, so that is what it shall be.

Released Alpha V20. Major change this week is a complete redesign and overhaul of the item generation system:
1) The original system was written by me, about 5 months ago, when my coding ability was still quite new.
2) That system was about 2000 lines of code long, and it took me about 10-20 minutes, in a long series of steps, to add a new item or enchantment.
3) The new system is less than 500 lines of code long, while retaining all functionality of the old system.
4) I can now add a new enchantment or item to the system, in less than 1 minute and it is now a single step process.
5) I have added several new items and much more enchantments to the game now.

So, despite it taking nearly three weeks to do, I'd still say that the effort was a major success. I've also been thinking about changes to my design and programming process, and have opted for having 5 major tasks to be completed in a month, rather than 10 tasks to be completed each week. I've found that I often underestimate how long it will take to address some tasks and overestimate how long it takes to do others. With an entire month to work on tasks, I can more easily prioritize things and not feel bad if I don't complete them in a week. I have a breakdown of each major task, in the second post of this thread.

I will now get back to doing weekly releases, and simply report what progress I got done on the 5 major tasks, each week. I'm planning on pushing myself, whether realistic or not, to have the first Beta of the game in January of 2019.
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20
Post by: Hooman on October 27, 2018, 09:09:40 PM
That sounds like a huge benefit from a design and maintenance perspective.

Even better, the knowledge and principles of how you did it can be applied to other things for years to come.
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20H
Post by: lordpalandus on October 28, 2018, 11:04:55 AM
Hopefuly, yeah!

Also released a Hotfix addressing a few gamebreaking bugs identified by a player off Reddit.
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20H
Post by: Hooman on November 05, 2018, 11:03:22 AM
I gave the new update a try. The interface seems much improved.

There was one persistent issue that proved to be quite annoying. The game seemed to randomly drop certain keys during game play. For instance, I'd press an arrow key and nothing would happen. I'd press it again, and then the character would move. I noticed this multiple times during game play. The frequency of this is probably < 10%. Might be unrelated, but I seem to notice it more around flashing objects. Perhaps it's a lag issue where keys can be swallowed and forgotten under certain conditions.

More hinting is needed about what certain flashing points do. Moving over them doesn't seem to do anything, and they continue flashing after moving away. And no, I don't want to read the manual to find out why. ;)
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20H
Post by: lordpalandus on November 05, 2018, 12:07:35 PM
Thanks!

I think it is a libtcod library issue actually. The black-boxed function that watches for inputs, sometimes ignores inputs and other times, duplicates the input and performs it twice. I'm not sure how to fix it at this time. I have noticed that the function is more prone to input errors when there is a lot of stuff going on, in terms of enemy pathfinding, but haven't noticed the issue where it ignores inputs around flashing objects.

Did you do the interactive tutorial? I ask, because the interactive tutorial does try to teach you what things do and how to get information on something by hovering the mouse over it.

EDIT: Also, if you press escape and get to the Pause Menu, there is a Map Legend option in the menu that gives a quick overview of all the objects that you can find on the game map and their colors.

Most things flash to help the user notice them. On some maps some objects are harder to see than others, and thus I made the objects flash to help the player notice them.
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20H
Post by: Hooman on November 06, 2018, 05:54:08 AM
The flashing is kind of nice, particularly if there is a key objective you must reach, though I would caution about over doing it. Making every object in the game flash is probably going too far. Flashing should be reserved for very important objects, or things that absolutely need attention.

I didn't notice any mouse hover tips, though part of that is being a text game, I didn't think to use the mouse.

Not sure if I noticed the escape menu or not. A legend of symbols would definitely be helpful. I suppose that's one of the problems with text games. A simple character doesn't convey as much information as a fully graphical image could.
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20HH
Post by: lordpalandus on November 06, 2018, 11:32:25 AM
Most things in the game map that do flash, are very important for the player to take note of. Such as:

1) Enemies flash, so you don't forget about them when you go to move, so you don't die unnecessarily, which always feels unfair.
2) Runic Objects (Enchanter, Pool, Forge) flash so that if you are looking for one to do upgrading, elixir refilling, or crafting, then you don't miss them. Also, they flash on the map out of FOV, so you know where to go after you've passed one.
3) Portals flash, to make you aware of them, so that you don't stay too close to them. That's where the enemies come from.
4) Stairs flash, to help the player find the way out of the sea of ASCII characters.
5) The Runestone flashes, as it is a combination of the Enchanter, Pool and Forge, rolled into one and attuning to it acts as your respawn point.
6) Biome-Specific Lootables and Chaos Strongboxes have the potential of having really great loot inside, and thus the player will want to notice them.
7) Treasure Fiends drop a lot of loot, if you can kill them, making them something the player will want to focus on.

The most important objects flashes prismatically; all 7 colors of the rainbow. So these are biome-specific lootables, Chaos Strongboxes, Treasure Fiends, Primal Chaos Portals, Descending Runic Gates, and the Runestone. Otherwise flashing is there to help a player notice them on varying biomes with different floor colors; ie an Archer is normally Yellow, so that is going to be hard to see on a Light Yellow floor color of the Desolate Ruins biome... so by making it flash, you actually notice them.

Well, that is why I suggest doing the interactive tutorial. It has almost fully phased out the old textual tutorial (which is found in the escape menu if someone ever wants to read it) and helps to teach most players the basics of gameplay so that they can play the game successfully. After implementing the interactive tutorial, the number of complaints from brand new players about not knowing what is going on, has greatly been reduced. So, I suggest you do the interactive tutorial; if it is not active, go to Options at the Main Menu, and activate it (I made it an option to disable it for returning players that didn't want to redo the tutorial). Mouse information appears on a line above your health bar, by the way.

Well, if you ever went to save the game manually, you'd have to press escape (ESC) to do it. If you simply closed the application, forcefully, then it wouldn't save. Unless you had been playing for at least 5 minutes, in which it would have autosaved, or if you had switched floors, then it would also autosave.

Sometimes a simple character can convey a lot of information, but it generally requires the user to play that game a fair bit to be able to recognize quickly what the symbol means. I've tried to work on this system further by color-coded various objects as well, so even if you don't recognize the character, the color of the character is consistent. As an example, all melee horde are blue, all ranged horde are yellow, and all spellcaster horde are red. All melee primals are green, all ranged primals are orange, and all spellcaster primals are purple. Specific walls are always the same color so a person should be able to recognize an illusionary wall from a solid wall.

I understand that narration in games and graphical tiles can greatly improve the UI and the ability for a user to recognize key objects, but right now I'm working with what I have, and trying to do the best I can do with my limited set of tools and abilities.

EDIT: Forgot to upload the second Hotfix here. Updated main post!
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20HH
Post by: Hooman on November 07, 2018, 10:10:42 AM
You just listed 7 flashing items. That sounds like way too many. Be careful your game doesn't end up looking like a porn advert.

Quote
Well, that is why I suggest doing the interactive tutorial. It has almost fully phased out the old textual tutorial (which is found in the escape menu if someone ever wants to read it) and helps to teach most players the basics of gameplay so that they can play the game successfully. After implementing the interactive tutorial, the number of complaints from brand new players about not knowing what is going on, has greatly been reduced. So, I suggest you do the interactive tutorial; if it is not active, go to Options at the Main Menu, and activate it (I made it an option to disable it for returning players that didn't want to redo the tutorial). Mouse information appears on a line above your health bar, by the way.

This leaves me feeling like I need to read a tutorial just to figure out how to load up the interactive tutorial.  :(
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20HH
Post by: lordpalandus on November 07, 2018, 11:15:21 AM
All things listed are important for their own specific reason. I could perhaps look into reducing the list down to a more reasonable number of flashing objects... perhaps:

1. I could give specific enemies a unique color on tilesets that they are hard to see on. So, if Yellow is hard to see on a Light Yellow background, maybe have archers a dark yellow color to make them stand out better. I made these critters flash originally because players kept reporting getting attacked when they couldn't see any foe within FOV.

2. I could reduce the frequency of flashing for less important objects. Runic objects are important, but aren't critical for most moment to moment decisions (unlike enemies), so maybe reduce the frequency of their flashes by 50%. Have them flash on occasion... to make more of a sparkle effect, to remind you they are there.

3. The other objects listed need to flash, to indicate their importance. People have complained about missing staircases (descending runic gates) so I need to keep them flashing. Portals will be of great importance next month when I work on creating side-levels with them (sore of like how oblivion gates worked in Oblivion) and currently are where enemies spawn. Runestone is by far the most important object in the level. The last three are important for player choices; risk v reward mechanism.

=====

The interactive tutorial is on by default. Unless you are not using the default profile that comes with each release, the tutorial should be active when you boot up the game. The option to disable it is there for players who've done the tutorial at least once, and don't care to do it again.
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V20HH
Post by: Hooman on November 08, 2018, 12:38:25 AM
In regards to the flashing, you might apply the phrase:
"If everything is a priority, then nothing is a priority"

Adjusting colors to maintain contrast for different color themed areas sounds like a good solution.

I don't think enemies need to flash, but when they attack, perhaps there should be some kind of flash or animation then. Attach the visual cue to the important event, rather than the object itself.

Rather than flash, you might also consider having a static color that shows through the current visual field, while other objects turn simple black/white when out of the field of view. That way important discovered objects stay prominently visible on the map. I think that would work well for stairs.



As for the interactive tutorial, I think that should simply be the beginning levels of the game, rather than something separate.

If game concepts are incrementally introduced, that gives time to learn them. As for my first experience, there were so many different enemy types introduced all at once, there was no real time or way to learn much about them. They were all just a hoard of monsters, with no clear distinguishing characteristic. Maybe introduce one new monster type every level or two, rather than all at once.
Title: Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V21
Post by: lordpalandus on November 10, 2018, 06:05:33 PM
Updated to Alpha V21

Implemented the two major tasks, and some quality of life stuff for this release.