Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411511 Posts in 69375 Topics- by 58430 Members - Latest Member: Jesse Webb

April 26, 2024, 02:55:38 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)RLML (Roguelike Markup Language)
Pages: [1]
Print
Author Topic: RLML (Roguelike Markup Language)  (Read 5679 times)
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« on: June 26, 2008, 08:16:20 AM »

Hay guise! I hope it's ok to post this here, if not please move it wherever you feel it's appropriate.

So I started on a little side project when I was bored at work, but I don't have a lot of time available to work on it, but i think it's a pretty cool idea, so I thought i'd post it here and see if anyone wants to help out with ideas, suggestions or code and work on it together.

The basic idea is an XML-based templating language for creating roguelikes. Right now I have a fairly vague idea of how it's all going to come together, but I started writing some code for it already and I'll post what I have below.

This is what I have working so far, mostly visual layout stuff for text.


This is the sort of brainstorm sample XML I came up with that I am using

Code:
<?xml version="1.0" ?>
<rlml>
<game name="Final Night" width="80" height="40" defaultScreen="startScreen">
<screens>
<screen bgColor="0x0F4D66" fgColor="0xEDBA68" name="startScreen">
<label x="1" y="1">HP:</label>
<label name="playerHP" x="4" y="1">100</label>
<label fgColor="0xDB5111" x="1" y="2">FEAR:</label>
<label name="playerFear" fgColor="0xDB5111" x="6" y="2">0</label>
<worldview x="0" y="3" width="80" height="35" />
</screen>
</screens>
<world startZone="city1">
<items>
<item type="useonce" name="Bandage" symbol="+" fgColor="#FF0000">
<modifier property="health" value="20"/>
<description>A first-aid bandage.</description>
</item>
<item type="useonce" name="Whiskey" symbol="!" fgColor="#FFFF00">
<modifier property="fear" value="-5"/>
<description>A flask of strong whiskey.</description>
</item>
<item type="areascroll" radius="4" name="Grenade" symbol="o" fgColor="#00FF00">
<modifier property="health" value="-20"/>
<description>A hefty nade.</description>
</item>
</items>
<zones>
<zone startx="500" starty="500" width="1000" height="1000" name="village1" displayName="Mistwind Village" type="randomvillage">
<creaturePlace density="20" creature="Zombie" />
<npcs>
<npc position="random" trade="true" creature="Humanoid" name="Crazy Stan">
<speak>
<onTalk>Hey man! You want some guns? I got mad guns!</onTalk>
<onBuy>Enjoy it!</onBuy>
<onSell>Ahh yes! More junk.. But.. Everything comes in useful these days.</onSell>
</speak>
</npc>
</npcs>
</zone>
</zones>
<player creature="Humanoid" symbol="@">
<property name="fear" min="0" max="100" labelLink="playerFear"/>
<property name="health" labelLink="playerHP" />
</player>
<creatures>
<creature name="Humanoid" inventory="true" symbol="H">
<property name="health" min="0" max="100" />
</creature>
<creature name="Zombie" base="Humanoid" symbol="Z">
</creature>
</creatures>
</world>
</game>
</rlml>

I am using libtcod for it

You can check out the little bit of code i have on googlecode:
http://rlml.googlecode.com/

So yeah, let me know if you have any ideas for this or if you want to help out with code, i'll gladly add you to the googlecode project.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Guert
Level 10
*****



View Profile WWW
« Reply #1 on: June 26, 2008, 11:51:45 AM »

Hey Toastie! I moved it in the technical board so you'd get people with tech skills to look at it Wink But it could be a good idea to start a Roguelike TIGS game with it... Now that would be quite an interesting community project. Smiley
Logged

Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #2 on: June 26, 2008, 01:29:54 PM »

Cool! Though part of the reason I posted it in Projects was to get some feature ideas from people who would use it. I have only a rough idea of what an XML-based language would even look like, so I thought people with no programming skills could pitch in some ideas for what they would be comfortable using.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Don Andy
Level 10
*****


Andreas Kämper, Dandy, Tophat Andy


View Profile
« Reply #3 on: June 26, 2008, 01:39:43 PM »

I haven't really got the time to contribute coding-wise on it, but I'll try to work with it and suggest features and report bugs and stuff. I really like the idea of the whole thing.
Logged
raigan
Level 5
*****


View Profile
« Reply #4 on: June 26, 2008, 04:11:15 PM »

Awesome idea!

One thing I would strongly suggest is to use something friendlier (and simpler) than XML:

YAML http://www.yaml.org/start.html
JSON http://2006.xmlconference.org/proceedings/176/presentation.html
SDL http://www.ikayzo.org/confluence/display/SDL/Home

Maybe it's just a pet peeve, but I find XML almost ridiculously awkward to read.

Logged
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #5 on: June 26, 2008, 04:22:42 PM »

Yeah my first thought was actually JSON, which i much prefer over XML myself. I just think that for most people XML is actually a lot more straightforward to deal with, especially with large documents. JSON is great for smallish objects, but if you have something dozens of levels deep, i think XML is actually a bit more manageable, especially if you have a good XML editor. I'll take a look at YAML though, it looks quite awesome.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
CitadelBrian
Level 0
**



View Profile WWW
« Reply #6 on: June 26, 2008, 04:31:57 PM »

Looking pretty good. Might give this a go, would give me a reason to use Visual Studio's C++ support. =)
Logged

Lead Programmer, Citadel Studios - ProgBlog
mjau
Level 3
***



View Profile
« Reply #7 on: June 26, 2008, 04:44:22 PM »

Lua is good too Smiley.  That example of yours could be..

Game {
    name = "Final Night",
    width = 80,
    height = 40,
    screens = {
        startScreen = {
             -- etc
        },
    },
}

Since Lua is an actual language you could easily do things like random items and generated content and such too.
Logged
Derek
Bastich
Administrator
Level 10
******



View Profile WWW
« Reply #8 on: June 26, 2008, 04:50:20 PM »

Hey Toastie! I moved it in the technical board so you'd get people with tech skills to look at it Wink But it could be a good idea to start a Roguelike TIGS game with it... Now that would be quite an interesting community project. Smiley

A community roguelike would own SO HARD.

Especially if we did an idea from JimmyBignut's thread.

Using toastie's RLML.

OH GOD THAT WOULD OWN. WTF

Logged
Don Andy
Level 10
*****


Andreas Kämper, Dandy, Tophat Andy


View Profile
« Reply #9 on: June 27, 2008, 01:24:20 AM »

Correct me if I'm wrong, but from what I could see, RLML currently doesn't do anything with the XML it reads, and just draws an empty field regardless of input, right?

Just to confirm I didn't mess up when compiling xD
Logged
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #10 on: June 27, 2008, 06:00:41 AM »

Right now it just draws color labels and there's a screen system, that's about it, and i have a menu class that's uncommited to SVN.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
PenguinHat
Level 1
*


Hi everyone! Nice to meet you all!


View Profile
« Reply #11 on: June 27, 2008, 06:20:13 AM »

Hey Toastie! I moved it in the technical board so you'd get people with tech skills to look at it Wink But it could be a good idea to start a Roguelike TIGS game with it... Now that would be quite an interesting community project. Smiley

A community roguelike would own SO HARD.

Especially if we did an idea from JimmyBignut's thread.

Using toastie's RLML.

OH GOD THAT WOULD OWN. WTF


I'd help with that.
Logged
Robotacon
Pixelhead
Level 3
******


Story mode


View Profile
« Reply #12 on: June 27, 2008, 06:21:56 AM »

I totally like the idea of opening up a game for anyone to edit.

With something like this you can even let people hyperlink different RL-games to eachother making this huge super-RL as big as the INTERNETS!

My idea was less hardcore

I've sent you a PM
Logged
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #13 on: June 27, 2008, 06:28:46 AM »

WOW! That is an amazing idea, robotacon! I'll set up a wiki on my site so we can all brainstorm there. 

*EDIT: Let's just use the googlecode wiki*

http://code.google.com/p/rlml/w/list

Feel free to contribute any thoughts there, everyone!

*Gah, i didnt realize googlecode doesnt let you make the wiki public to anyone, i'll find some other place, but for now, feel free to PM me your gmail and i'll add you to the googlecode project*
« Last Edit: June 27, 2008, 06:51:52 AM by toastie » Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Don Andy
Level 10
*****


Andreas Kämper, Dandy, Tophat Andy


View Profile
« Reply #14 on: June 27, 2008, 08:12:17 AM »

WOW! That is an amazing idea, robotacon! I'll set up a wiki on my site so we can all brainstorm there. 

*EDIT: Let's just use the googlecode wiki*

http://code.google.com/p/rlml/w/list

Feel free to contribute any thoughts there, everyone!

*Gah, i didnt realize googlecode doesnt let you make the wiki public to anyone, i'll find some other place, but for now, feel free to PM me your gmail and i'll add you to the googlecode project*

Maybe a little punBB or SMF forum hosted somewhere? On a sidenote, I can host anything from forum to wiki, although just with a subdomain.
Logged
Hideous
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« Reply #15 on: June 27, 2008, 10:31:25 AM »

ScribbleWiki is very good. Another thing: You better be able to include different files in this; Having everything in one single file would be very confusing later on.
Logged

increpare
Guest
« Reply #16 on: June 29, 2008, 09:00:24 AM »

WOW! That is an amazing idea, robotacon!

I also think that's quite an interesting idea.
Logged
Massena
Level 4
****


Satisfied.


View Profile
« Reply #17 on: July 08, 2008, 07:56:19 AM »

This is looking great, but how are you thinking of tackling the harder stuff, such as random level generation?


Edit: I'm trying to compile on the mac, but I don't seem to have libtcod.hpp and some virtual functions are giving me problems. Tips? Grin

Edit 2: Damn me for not reading, the link was right there.

Edit 4032: Still a no go, I have no idea on how to compile it with the debyan library.
« Last Edit: July 08, 2008, 08:25:56 AM by Massena » Logged

MekanikDestructiwKommando
Level 3
***


Let's ROCK!


View Profile
« Reply #18 on: August 30, 2008, 04:39:02 AM »

O_o would this allow programming noobs, such as myself, to create roguelikes with understanding of design, logic, and colours alone?  WTF
Logged

Quote
There have always been interactive experiences that go beyond entertainment.  For example, if mafia games are too fun for you, then you can always join the mafia.
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic