Ivan
Owl Country
Level 10
alright, let's see what we can see
|
|
« 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 <?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
|
|
|
|
Guert
|
|
« 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 But it could be a good idea to start a Roguelike TIGS game with it... Now that would be quite an interesting community project.
|
|
|
Logged
|
|
|
|
Ivan
Owl Country
Level 10
alright, let's see what we can see
|
|
« 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
|
|
|
|
Don Andy
|
|
« 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
|
|
|
|
|
Ivan
Owl Country
Level 10
alright, let's see what we can see
|
|
« 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
|
|
|
|
CitadelBrian
|
|
« 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
|
|
|
|
mjau
|
|
« Reply #7 on: June 26, 2008, 04:44:22 PM » |
|
Lua is good too . 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
|
|
« 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 But it could be a good idea to start a Roguelike TIGS game with it... Now that would be quite an interesting community project. 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.
|
|
|
Logged
|
|
|
|
Don Andy
|
|
« 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
|
|
« 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
|
|
|
|
PenguinHat
Level 1
Hi everyone! Nice to meet you all!
|
|
« 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 But it could be a good idea to start a Roguelike TIGS game with it... Now that would be quite an interesting community project. 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. I'd help with that.
|
|
|
Logged
|
|
|
|
Robotacon
|
|
« 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 hardcoreI've sent you a PM
|
|
|
Logged
|
|
|
|
Ivan
Owl Country
Level 10
alright, let's see what we can see
|
|
« 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/listFeel 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
|
|
|
|
Don Andy
|
|
« 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/listFeel 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
|
|
« 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
|
|
« 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? 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
|
|
« 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?
|
|
|
Logged
|
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.
|
|
|
|