Skip to main content
GameDev.net gamedev.net

PRO Tired of ads? Read GameDev.net ad-free and help keep the community independent with GameDev Pro — $3/month.

Generic RPG

Generic RPG

Daerax
Journal · · 3 min read
1,180 0
So Ive added another hobby project in addition to the development of the functional scripting language to rotate through. I've completed the logic tool and am working on packaging it for easy use and distribution - including a site where you can use it live.

The new project I'm working on is an open source game + game engine. Currently it is titled Generic RPG. It is a 2D Game using SDL.NET and Reiner's Tilesets. The core goal here is to first complete a small game. Second display the great efficacy with which a game can be completed when working with an expressive language. And why you should take all the help you can get when trying to complete a game since the odds are stacked against you. Instead of using a language because everyone else does.

I am also trying to the best as I can to write the game in an extensible way. Keeping in mind that in each stage of the development I want any one to be able to easily use the Engine in their own project to make any game that I could or better. I am also keeping a public SVN which will be an up to date collection of the source. Trac on assembla. The engine is simply the project compiled as a DLL no extra work. To run the game I simply change the output type to exe. The dll is not at all dependent on any of the resources I am using and independent from my own game which is data driven.

Finally I want to write a non trivial open source game using functional paradigms as the main driver and using objects as a packaging - something I have never really seen. People go on about how powerful functional programming is but never really give anything beyond abstract examples and those few practical are boring applications :p. Ofcourse I have made concessions. I have not gone dogmatically overboard by going overly pure.

Functional programming excels at writing code that is very data driven but fails at writing easily encapsulated extensible code. The various popular languages have solutions. On the .NET framework I have tried to write a balance of functional and .net compliant oop.


My initial design thoughts are:

------------------
The game is a story:

There is a story which must show the player things, and let them hear things. The story is also in charge of how these things are shown and heard.
This story takes place in a world. This world is big. But the world must be shown to the player. There must be a camera into our world that gives parts of the world to the story as we move.

Inside this world there are things. Everything can be seen. But some things can do. They can move Or make noise Or resist being moved. There are some things which move and change their form as they move.

Types of things:
. Narrator  . SDL. Camera. World. Objects ------- Objects can have properties, some can:                           -    move                           -    change shape or form                           -    make sounds                           -    resist movement                           -    some combination of or all of the above

But we must also allow the player to do as he pleases. The player is an object which does all of the above but also takes instructions. For now he must take directions on where to go.
------------------------------------

I am also using a mind mapping software that someone in the forums recently mentioned. It fills in the final gap I needed I think - I already use whiteboards, paper notebooks, one note, PDA, ReminderFox. Freemind is not perfect though, it is good at organizing your thoughts but not as good as one note at organizing your organized thoughts.

Anyway this means that at any giving moment you can go to: here and see a graph of what my current thoughts are. These days I don't implement anything before first whacking it out on Freemind. The file is also there in the svn repository. So you can follow my development if you will.

Discussion

Loading comments...