Tuesday, May 6, 2014

Making a game in Python

Coding a Game

How could I improve my coding in Python? that was my question a month ago - and after I made my menu library in curses for Python - I was thinking of writing a rogue like game, just for fun.
But to my surprise now I'm hooked on this fun project.

I've played rogue like game in text mode in the past - one of the greatest and most famous is called "crawl". But playing them - left me with a feeling of emptiness, killing monsters and being killed was pretty much the expected experience and after filling the morgue with all sort of failed attempts, I gave up...

And I thought, what is the main lesson in this game?! is it you have to kill or get killed?
what is it I'm unconsciously learning through this game? is it the old "Dungeon and Dragon" paradigm that when I kill monsters I get more experiences (xp) and can level up?

Because to be honest, the only incentive (and excitement) in this sort of game is to level up, so you can meet new monsters more powerful than before, but your hope is that you will level up soon enough, so you can defeat them, but the irony is that inevitably then you will meet even more powerful creatures...

This game mechanism is almost a metaphor for the Buddhist definition of "suffering" : The anxiety or stress of trying to hold onto things that are constantly changing...

So my idea was to write a different kind of game... where the avatar's desires and attachments are seen as a way to achieve enlightenment.

A different kind of game

A game where it's not about killing, but about playing with concepts and kōan , and learning philosophy and spirituality along the way ...

That's the idea in a nutshell, I'll give you an example of the kind of strategy to use in the game.
Let say my character is entering a cave and there is inside a dragon protecting his hoard, and through the use of meditation and persuasion the avatar is capable of teaching the dragon how to let go of attachment, after a while the dragon just leaves the cave and fly away ... there was no fight, no kill - the dragon is now a friend and the whole situation is positive.

There will be of course many challenges in this game, but no kill - no experience will be gained through slaughtering monsters. This idea of killing to gain experience and level up is completely wrong.

How far advanced is the game, so far?

The game is in text mode - using the curses library ; which means the window is 80x24 in size and use 8 colors - the avatar is represented as "@" and move through rooms that are surrounded by wall made of "%" (everything can be customized but that's the option chosen so far).

The idea for me, is to have a game I can play immediately, with good mechanics, and after that I'll go into the study of a graphic library (like pyglet, pygame, or pygtk).
Because at my current level, writing for curses is something I can manage, while designing the game ; but I'm not sure it would be the same ease if I had to learn a new library too.

Anyway, so far the game is able to do the following actions :
- loading maps, moving the character around, creating new maps, editing new maps, entering a new map.
There's no inventory, and no monsters yet...

For the interface : the screen the 2 top lines are reserved for the avatar statistics (HUD : head up display) and the 2 bottom lines are reserved for displaying informations related to specific actions or situations.


Additionally I keep this link below - to remind me of how "fun-killing" the video games industry can be. At this stage my focus is on the designing and coding of this game - it doesn't really have a definitive name yet - I call it "Dreamer" at the moment.

FAQ: Game Industry Advice | Meagan's Blog: passion for video games isn’t enough to cut it in this industry. Multiplayer lobbies, enthusiast forums, and fan-run websites are filled to the brim with passionate gamers, all of whom ensure our industry thrives. Although passion is essential, hard work, talent, networking, and a bit of luck are absolutely imperative to gaining a foothold in the professional world of video games.

No comments: