Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


I'm designing an RPG game (With graphics) in Python and pygame


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
33 replies to this topic

#1 vharishankar   Members   -  Reputation: 181

Like
5Likes
Like

Posted 01 October 2011 - 12:56 AM

I'm doing a small RPG adventure game with pygame and Python. Development is very fast with pygame and Python so I have got the basic engine ready. However, it's still in very early stages.

I'm personally drawing each and every graphic used in the game and even the font is of my own creation :)

As such what is completed is:


1. Level (or room) display with multiple levels -- i.e. character can walk off the screen if there is a level to the top, left, bottom or right.
2. Movement of character
3. Some basic objects (health, gold, key, locked items etc.)
4. Inventory display and adding items to char's inventory
5. Displaying prompts and status messages.

Main feature:
1. Tile based movement.
2. Game is 48*48 tiles of 10*10 per level or room

Planned:

1. Interactive characters (NPCs)
2. Objects of different types
3. Magic / spells
4. Missions to be completed etc.

Screenshots:
butaba-screen-1.png


butaba-screen-2.png


butaba-screen-3.png


Your feedback for more ideas on how to develop this type of game will be appreciated.

Sponsor:

#2 Dawoodoz   Members   -  Reputation: 331

Like
1Likes
Like

Posted 01 October 2011 - 11:28 AM

An important thing to get a story in a roleplay game is to have level specific modules that are saved together with a mission. Since Python is not compiled, there should be an easy way to do dynamic loading of the code.

My open source DirectX 10/11 graphics engine. https://sites.google.com/site/dawoodoz

"My design pattern is the simplest to understand. Everyone else is just too stupid to understand it."


#3 Morley   Members   -  Reputation: 109

Like
1Likes
Like

Posted 01 October 2011 - 02:38 PM

Layers! A nice looking 2D rpg generally includes images at different layers to give a sense of depth and height without leaving 2D.

I'm not used to working with python, but things to look in to to accomplish this are the draw order in the program, collision detection and opacity.

Good luck :)
Morley

Aspiring programmer, modeler and game designer.

#4 Sharpe   Members   -  Reputation: 144

Like
1Likes
Like

Posted 01 October 2011 - 04:33 PM

Awesome! Wow! You're on your way to accomplishing a long-term goal of mine: to make an old-school, console-style 2D RPG.

I don't really have any advice -- I'm way behind you in experience -- just wanted to give some well-deserved encouragement.

What is the game's genre, background story and goal? Normally, RPG's are medieval fantasy, but this appears to be contemporary fantasy.
A 30-year-old interested in learning to program by making an old-school, simple, text-only or 2D dungeon fantasy video game.

  • As of 9/28/2011, currently attempting to learn the basics of Python 2.7.
  • As of 10/14/11, Dabbling in C#.
  • As of 10/24/11, decisively surpassed my small knowledge of Python in C#.

#5 elodman   Members   -  Reputation: 117

Like
1Likes
Like

Posted 01 October 2011 - 06:42 PM

Great to see an RPG with some cute GFX!

This reminds me of the oldies like the Ultima series, - although I used to be in the other camp, the ones involved with the Bard's Tale series. Turn-based combat rulez!
I can't give you any fine advice unfortunately, but encourage you to finish it someday, and keep us informed.
That was the time, the Golden Age, when C-64 and Amiga ruled!

#6 vharishankar   Members   -  Reputation: 181

Like
0Likes
Like

Posted 01 October 2011 - 07:23 PM

An important thing to get a story in a roleplay game is to have level specific modules that are saved together with a mission. Since Python is not compiled, there should be an easy way to do dynamic loading of the code.


Thanks. Initially I have no story as of now. But I am doing the level design and level editor so that I can build the game much quicker. In fact, only yesterday I developed the level editor, which makes it much easier to design "rooms" visually rather than inputting the entire level as a list within the code.

Layers! A nice looking 2D rpg generally includes images at different layers to give a sense of depth and height without leaving 2D.

I'm not used to working with python, but things to look in to to accomplish this are the draw order in the program, collision detection and opacity.

Good luck :)


Thanks. As of now, I am using two layers: one background layer for the level background (loaded from a tileset) and a foreground layer which contains objects and characters from the level. The level objects are loaded from separate files, each file having a transparency region, blitting over the surface after the background is drawn.

The biggest issue for me is to create 3D looking objects. I am still practising pixel art, which is a unique artform in itself and I am beginning to have great respect for the pixel artists of old who worked in much smaller resolutions and with 256 or less colours. :)

In this game, since it's tile based, collision detection is simply a matter of "which tile is this object on?" code. Much simple, allowing me to focus on the actual game rules and gameplay.

Awesome! Wow! You're on your way to accomplishing a long-term goal of mine: to make an old-school, console-style 2D RPG.

I don't really have any advice -- I'm way behind you in experience -- just wanted to give some well-deserved encouragement.

What is the game's genre, background story and goal? Normally, RPG's are medieval fantasy, but this appears to be contemporary fantasy.


Thanks. I am not really experienced in game development though I have experience in programming in general, including C and C++ knowledge.

The genre background and story are not yet finalized but I have a vague idea where I'm going with this. I am yet to decide on the actual storyline. I decided that it's more important to get a working game model before I go too deep into that aspect. Too many times, I find myself having great ideas, but lack of implementation lets me down.The character design might also change a lot during the development of this game.

Since I do write also, I am sure I can get some ideas for this game. :)

Great to see an RPG with some cute GFX!

This reminds me of the oldies like the Ultima series, - although I used to be in the other camp, the ones involved with the Bard's Tale series. Turn-based combat rulez!
I can't give you any fine advice unfortunately, but encourage you to finish it someday, and keep us informed.


I am a big fan of Ultima series. In fact, some of my inspiration to write an RPG game is derived from Ultima series. Though I haven't played those games a big deal, I still love the design of those games.

I will share my creation process here for your kind feedback.

Once again, thanks so much. More screenshots will follow. :)

#7 vharishankar   Members   -  Reputation: 181

Like
1Likes
Like

Posted 01 October 2011 - 10:04 PM

Here are some screenshots of the level editor after completion. A very simple but effective creation tool for quickly designing level backgrounds, fully keyboard driven.

Level editor main window (the viewport is 480x480 and the level fits perfectly within it, so multipage scrolling is not required. Current cursor location is marked by the white rectangle. Solid tiles are marked with "w" for "Wall". Typing "w" again on a solid tile makes it free for movement.
leveleditor-screen-1.png

This is the tile picker within the level editor. Allows you to pick which tile to paint on the level editor - since the tileset image may be bigger than 480x480, I had to implement multiple page scrolling for larger tilesets.

leveleditor-screen-2.png

leveleditor-screen-3.png

#8 Sharpe   Members   -  Reputation: 144

Like
0Likes
Like

Posted 01 October 2011 - 11:23 PM

Wow. I can't even imagine how you can do this.

Keep us updated!
A 30-year-old interested in learning to program by making an old-school, simple, text-only or 2D dungeon fantasy video game.

  • As of 9/28/2011, currently attempting to learn the basics of Python 2.7.
  • As of 10/14/11, Dabbling in C#.
  • As of 10/24/11, decisively surpassed my small knowledge of Python in C#.

#9 vharishankar   Members   -  Reputation: 181

Like
0Likes
Like

Posted 02 October 2011 - 12:02 AM

Wow. I can't even imagine how you can do this.

Keep us updated!


I will. I am planning to release this as Open Source (the code, not the graphics, though) once I get enough features done.

Not all of it is "clean coding" but my main aim is to get things working quickly.

I am also planning to write about my techniques and design ideas, but only if I have the time to do so. Being a spare-time project, I need to keep finding motivation :)

#10 Morley   Members   -  Reputation: 109

Like
1Likes
Like

Posted 02 October 2011 - 10:52 AM

It looks really nice with that classic feel. Let us know when you have any bit of it out to play it :D
Morley

Aspiring programmer, modeler and game designer.

#11 newbie_gamer   Members   -  Reputation: 124

Like
0Likes
Like

Posted 02 October 2011 - 11:05 AM

could you please tell me how you implemented the pop up interaction menu for the objects. I am trying to implement something similar and seem to be stuck

#12 vharishankar   Members   -  Reputation: 181

Like
0Likes
Like

Posted 02 October 2011 - 08:33 PM

could you please tell me how you implemented the pop up interaction menu for the objects. I am trying to implement something similar and seem to be stuck

It depends on what programming model you're using, but what I'm doing is putting the menu displaying routine in its own event loop and drawing the menu on screen over the rest of the game. I accept menu-related input and then exit the routine when it's done. The game redraws the window automatically when I quit the routine since I draw the whole screen every move (my game is step-by-step, no animations etc.so it's not that bad
)

#13 vharishankar   Members   -  Reputation: 181

Like
0Likes
Like

Posted 02 October 2011 - 08:37 PM

It looks really nice with that classic feel. Let us know when you have any bit of it out to play it :D


Thanks a lot. Once I implement NPC code am planning to place it in a public repository. Game will still be very incomplete, but at least you could play around with the game. Feedback will be much appreciated for continued development. Posted Image

#14 Morley   Members   -  Reputation: 109

Like
0Likes
Like

Posted 03 October 2011 - 06:27 PM

Sure thing! Post it here and/or pm me and I'll gladly play with it and give you feed back. :D
Morley

Aspiring programmer, modeler and game designer.

#15 vharishankar   Members   -  Reputation: 181

Like
1Likes
Like

Posted 04 October 2011 - 11:30 PM

Here are updated screenshots of the game so far:

What I've implemented:

INGAME OBJECTS
1. Basic object interaction, picking up and using.
2. Chests - displaying the contents if unlocked, picking up items from chest etc.
3. Keys - unlocking chests with keys.
4. Money - adds gold to the player
5. Health potion - adds to player's health if not already max

NPC
1. Basic NPC code - displaying NPC in level
2. Conversation (not yet implemented -- still in progress)

butaba-screen-4.png

butaba-screen-5.png

butaba-screen-6.png

butaba-screen-7.png

butaba-screen-8.png

#16 Sharpe   Members   -  Reputation: 144

Like
0Likes
Like

Posted 05 October 2011 - 12:08 AM

Man, that is freaking awesome!

It almost looks like an educational RPG or at least a very lighthearted one. True?

What image editor are you using? Gimp or PS?
A 30-year-old interested in learning to program by making an old-school, simple, text-only or 2D dungeon fantasy video game.

  • As of 9/28/2011, currently attempting to learn the basics of Python 2.7.
  • As of 10/14/11, Dabbling in C#.
  • As of 10/24/11, decisively surpassed my small knowledge of Python in C#.

#17 vharishankar   Members   -  Reputation: 181

Like
0Likes
Like

Posted 05 October 2011 - 12:11 AM

I am using GIMP as of now. It's not really very friendly as a fat bit editor which is more optimized for pixel and tile based graphics, which is what I really want. But there seems no fat bit editors in Linux.

I am using the zoom feature in GIMP at around 800% to 1000% to draw the smaller tiles.

The biggest problem with GIMP is that there seems no way to display "Tile boundaries". It is a pain to count pixels on screen.

#18 Sharpe   Members   -  Reputation: 144

Like
2Likes
Like

Posted 05 October 2011 - 12:16 AM

I am using GIMP as of now. It's not really very friendly as a fat bit editor which is more optimized for pixel and tile based graphics, which is what I really want. But there seems no fat bit editors in Linux.

I am using the zoom feature in GIMP at around 800% to 1000% to draw the smaller tiles.

The biggest problem with GIMP is that there seems no way to display "Tile boundaries". It is a pain to count pixels on screen.


Would it help if you set your grid (Image>Configure Grid then View>Show Grid) to your tile size?
A 30-year-old interested in learning to program by making an old-school, simple, text-only or 2D dungeon fantasy video game.

  • As of 9/28/2011, currently attempting to learn the basics of Python 2.7.
  • As of 10/14/11, Dabbling in C#.
  • As of 10/24/11, decisively surpassed my small knowledge of Python in C#.

#19 vharishankar   Members   -  Reputation: 181

Like
0Likes
Like

Posted 05 October 2011 - 12:23 AM

That helps a lot. Thanks.

I have used GIMP so much, but I haven't even looked at grids till now. I am embarrassed by my own ignorance. :o

#20 Sharpe   Members   -  Reputation: 144

Like
0Likes
Like

Posted 05 October 2011 - 12:34 AM

The mouse finally helped the lion! :D

I do a fair amount of map making in GIMP for table-top RPG sessions. I set the grid and set View>Snap to Gird and draw a basic outline with the square select tool an fill.
A 30-year-old interested in learning to program by making an old-school, simple, text-only or 2D dungeon fantasy video game.

  • As of 9/28/2011, currently attempting to learn the basics of Python 2.7.
  • As of 10/14/11, Dabbling in C#.
  • As of 10/24/11, decisively surpassed my small knowledge of Python in C#.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS