python

Code Finished

Overworld

I have now finished the creation of actual features in the game, and I hope that I’m done with tuning/removing debug items, because I don’t think I am going to check any more.

I have implemented all of the features specified in a previous post.

The final release on GitHub is here.

Advertisements

Testing my Game

Not because I was worried about it not working, but because I have to.

Testing Procedures

Some browser-side zooming is recommended on that image.

The first test poses a number of battles of Frog versus Toad, to see who wins.

I am testing the defending advantage, then a neck-and-neck battle with a slight bias, and then a battle in which both sides can insta-kill. (falling back then, to the defender’s advantage)

The first test made me realize that I’d programmed a defender’s advantage when I was expecting an initiator’s advantage, but that is fine.

Once I knew how the advantage behaved the rest was fine.

Next I tested potions, which have been designed to provide three stat boosts, and all of the tests went as expected.

The algorithms are all being calculated as expected, and caps on health are functional as well.

“Lots of Potential”

I’m approaching completion of the program in terms of meeting criteria, with at least three quarters of the necessary algorithm made, it’s just a matter of:

  1. Creating enemies
  2. Creating item functionality
  3. Linking all gameplay elements to create a game out of the existing toys
  4. Content such as variety of items/effects, different enemies*
  5. A levelling thing?

*Beyond this it isn’t actually necessary so I doubt it will get done.

Things I have made recently:

  • World map
  • Functionality to look around local area
  • Ability to view inventory
  • Ability to collect nearby objects (in inventory)
  • Ability to move to objects in area.

Code Released here.

Actual Work

I’m actually making relevant code again;

I just made a simple battle system (that doesn’t bother to print its details…) that will quickly resolve who wins out of a pair with a seconds per attack and a damage per attack stat each.

I also made a pair of for loops to generate sets of strings that will give a scale map of the entire game world rather than just the current area.

This is important progress, as I am very consistently losing interest with this project….

Aaanyways.

Progress

My work so far:

01_map

This screenshot shows some teaser code, and a demonstration of my ASCII map, with a rogue-like at-sign-character carelessly splashed across the map.

There are four commands so far:

  • move: randomly moves the player to a different coordinate on the region
  • travel [north | south | east | west]: changes the coordinates of the current region according to the direction specified
  • spawn: randomly places an asterisk on the map
  • exit: terminates the program

Party Grinding (not to be confused with grinding party)

One thing I want to achieve in py4school is a lack of grinding mechanics, which in my opinion damage the replay value of games; (which is in turn at odds with the purposes of random generation.)

This, however, leads to a problem, in that I indeed need some kind of character growth implemented in-game; the first thing that comes to mind is to implement a kind of grinding that deliberately and exclusively holds complicated gameplay back from new players.

In order to implement this in a normal leveling and exp way, which I’d like to do, the best game feature I can think of is a reputation/fame system; (fame is also a nice tie to the Diablo roots I’m embracing.)

Fame would affect the amount of followers you can keep, holding back the complexity of optimizing multiple characters, allowing you to practice and master the usage of 3 followers before you start playing with 4, or say, the usage of a new class without any followers before you start playing with a follower.

And with this I add that my aim is to make less of an RPG ‘idler’/’infinigrind’ (new term!) and more of an RPG puzzler, relying on stealth and choices to take out enemies in a non-direct way, all in a quasi-medieval age of civilization.

P.S.

There will be more than one system determining your maximum party size, however the raw grinding aspect is the one that both gives the complexity to players who fail to prove experience more efficiently, and that allows players easier victory when struggling, as well as satisfying the criterion of the assignment!

Initial Design Ideas: “Extradite”

Looking at my goals for this project, I have worked out multiple ideas for a general game structure, and this one is the one I like:

Extradite.

You are set in a residence a short distance away from an unknown city, having been extradited from your old home (from which you are now much farther), and must survive either in the wilderness, in the urban community, or in the depths of your adventures. (Hell.)

This setting opens up three primary linked stories, and to an extent you will need to participate in all three, but which ones you thrive in are up to you, and your character preferences.

The game has three layers:

  1. Text interface
  2. Area map
  3. World map

The text interface is the input and output for the game, whereas the area map is just an auxiliary to this.

The world map simply names the different regions as they appear geographically, and although the game could be enjoyable with personal memorization of maps, (Minecraft!) I have a marked criterion to meet, so that is what I shall be exploring: map integration in a geographically driven survival/exploration/adventure game.

I also have some more story in mind but that shall be discussed in the future, and finally:

I’m not going to use the geometry system for actual controls; there shall be no “move (1,1)”, no “move left” and definitely not any “goto (547.8, 38664.2)”.