1
Programming / Python for a Rouge Like RPG
« on: November 10, 2011, 12:48:58 AM »
I've been studying programming from Java to C++ and now to Python. While I have never implemented anything I've learned I've always wanted to but have never had the ideas on what to do or how to do it. Now that I do I've found this language, Python, and like the simplicity and power behind it.
I've learn many concepts of programming and with C++ it was always hard to work with just the concept because of the language complexity, but with Python it seems a lot easier to work with.
So my idea:
The game is going to be made with the ASCII characters so basically it will be a rouge like. The major idea behind it is to be similar to Adventure mode in Dwarf Fortress but that's really the only comparison I'm making. Since this will be my first time working with Python I know to start small and work my way up.
1. Game screen generation + player character '@' placement
No movement will be implemented first just the screen and to have the player appear on screen.
2. Of course then movement through keyboard input.
3. I'll need to have an NPC character generate as well in order to test the next addition.
First NPC will probably be simple. I'm a little worried about how to have this character move around freely. Would I have to create AI before NPCs could be implemented?
4. I want the player to have the ability to interact with things in multiple ways. The most basic being through combat.
Combat from the beginning will simply be the ability to attack and maybe a percentage chance to block.
That's really the basic bare-bone set up for character control I have figured.
5. Simple Dungeon. Like most if not all rouge-likes they have a dungeon generator.
I'll probably find a good example with a generator and look over it. I wonder if I should just hand craft a sort of dungeon first before delving into a generator simply for the fact of expanding other game elements.
I plan to expand on pretty much every simple idea to add to it once I know how to work with it.
Interaction : Instead of just combat I'd like to include other interactions as well.
- talking
- examine
- advanced combat
- magic
Advanced Combat : One thing I love about Dwarf Fortress Adventure mode is the combat. While I don't think I'd like to go that complex, at least not now, I'd like to have the ability to,
- attack specific locations on the body
- have an attribute system that effects every part of battle from damage, chance to block, attack and movement speed, reach of attack, and whatever else is involved with the fighting.
- add in ranged weapons like bows
- have weapon types effect the attack reach, damage, and have your skill with the weapon effect all that as well.
NPC Generation : Instead of just having the random enemy NPC generate I'd like to have friendly or neutral NPCs as well.
- Talk with friendly NPCs, possibly receive quests or have an NPC become your companion.
- Enemy NPCs have advanced combat skills meaning they can and will fight like you can, choosing body parts to attack not completely randomly but maybe (though this would involve a lot of variable comparison) attacking depending on the efficiency of the attack depending on their attributes, weapon, etc.
Dungeon Generation : While dungeons are all fine and good I'd like to be able to create both interior and exterior locations.
- I'll start with an all interior dungeon generator then eventually work my way to having it generate exteriors as well. Have rivers, lakes, mountains, etc. I'd really limit this though because I know that I could lose all my time trying to make this as realistic as possible. I'm not looking to create a whole world (at least not yet) like Dwarf Fortress does.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
That there is basically the idea I have for this project. It will grow and develop as I work on it of course but I'm just looking to get input on how I might go about all this. Though that's a pretty broad question.
I'd really appreciate if someone or a few people could go through these things I've explained and either link me to sites that would help with this sort of thing or explain what ways I will code these mechanics.
I've read this and it is helpful but I'd rather not follow something like this step by step because I can't learn like that. I learn better finding things out on my own or with help from others, this way I feel as though I'm just copying and pasting the code and doing nothing myself.
One issue I've been running into as I tried starting with the code last night is that I can't get python to run through notepad++. I've tried a few different things like having the Run... shortcut set to the "$(FULL_CURRENT_PATH)" but a cmd window pops up and closes almost instantly and all I can make out is that I see the word syntax. I know the code I was writing was correct as well and I also copied it straight from the tutorial.
My final question. I read somewhere that Python is great for scripting but it may be necessary to write a games engine in something like C++. I was wondering how this would work. I'm also wondering what would an engine for this sort of game I've explain above me composed of.
Really appreciate any help I get seeing as this is such a long winded post.
Thanks
I've learn many concepts of programming and with C++ it was always hard to work with just the concept because of the language complexity, but with Python it seems a lot easier to work with.
So my idea:
The game is going to be made with the ASCII characters so basically it will be a rouge like. The major idea behind it is to be similar to Adventure mode in Dwarf Fortress but that's really the only comparison I'm making. Since this will be my first time working with Python I know to start small and work my way up.
1. Game screen generation + player character '@' placement
No movement will be implemented first just the screen and to have the player appear on screen.
2. Of course then movement through keyboard input.
3. I'll need to have an NPC character generate as well in order to test the next addition.
First NPC will probably be simple. I'm a little worried about how to have this character move around freely. Would I have to create AI before NPCs could be implemented?
4. I want the player to have the ability to interact with things in multiple ways. The most basic being through combat.
Combat from the beginning will simply be the ability to attack and maybe a percentage chance to block.
That's really the basic bare-bone set up for character control I have figured.
5. Simple Dungeon. Like most if not all rouge-likes they have a dungeon generator.
I'll probably find a good example with a generator and look over it. I wonder if I should just hand craft a sort of dungeon first before delving into a generator simply for the fact of expanding other game elements.
I plan to expand on pretty much every simple idea to add to it once I know how to work with it.
Interaction : Instead of just combat I'd like to include other interactions as well.
- talking
- examine
- advanced combat
- magic
Advanced Combat : One thing I love about Dwarf Fortress Adventure mode is the combat. While I don't think I'd like to go that complex, at least not now, I'd like to have the ability to,
- attack specific locations on the body
- have an attribute system that effects every part of battle from damage, chance to block, attack and movement speed, reach of attack, and whatever else is involved with the fighting.
- add in ranged weapons like bows
- have weapon types effect the attack reach, damage, and have your skill with the weapon effect all that as well.
NPC Generation : Instead of just having the random enemy NPC generate I'd like to have friendly or neutral NPCs as well.
- Talk with friendly NPCs, possibly receive quests or have an NPC become your companion.
- Enemy NPCs have advanced combat skills meaning they can and will fight like you can, choosing body parts to attack not completely randomly but maybe (though this would involve a lot of variable comparison) attacking depending on the efficiency of the attack depending on their attributes, weapon, etc.
Dungeon Generation : While dungeons are all fine and good I'd like to be able to create both interior and exterior locations.
- I'll start with an all interior dungeon generator then eventually work my way to having it generate exteriors as well. Have rivers, lakes, mountains, etc. I'd really limit this though because I know that I could lose all my time trying to make this as realistic as possible. I'm not looking to create a whole world (at least not yet) like Dwarf Fortress does.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
That there is basically the idea I have for this project. It will grow and develop as I work on it of course but I'm just looking to get input on how I might go about all this. Though that's a pretty broad question.
I'd really appreciate if someone or a few people could go through these things I've explained and either link me to sites that would help with this sort of thing or explain what ways I will code these mechanics.
I've read this and it is helpful but I'd rather not follow something like this step by step because I can't learn like that. I learn better finding things out on my own or with help from others, this way I feel as though I'm just copying and pasting the code and doing nothing myself.
One issue I've been running into as I tried starting with the code last night is that I can't get python to run through notepad++. I've tried a few different things like having the Run... shortcut set to the "$(FULL_CURRENT_PATH)" but a cmd window pops up and closes almost instantly and all I can make out is that I see the word syntax. I know the code I was writing was correct as well and I also copied it straight from the tutorial.
My final question. I read somewhere that Python is great for scripting but it may be necessary to write a games engine in something like C++. I was wondering how this would work. I'm also wondering what would an engine for this sort of game I've explain above me composed of.
Really appreciate any help I get seeing as this is such a long winded post.
Thanks