Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

878894 Posts in 32944 Topics- by 24352 Members - Latest Member: odingrey

May 22, 2013, 11:03:41 PM
TIGSource ForumsDeveloperFeedbackDevLogsDeep Lands: Open-world, Roguelike-inspired RPG
Pages: [1] 2
Print
Author Topic: Deep Lands: Open-world, Roguelike-inspired RPG  (Read 3836 times)
zircon
Level 0
**


View Profile Email
« on: April 26, 2011, 01:13:55 PM »

Deep Lands
(placeholder name)

Overview
I've been an avid fan of all sorts of RPGs for as long as I can remember. Recently, I was reading an opinion piece that lamented how supposedly-deep modern RPGs, like Dragon Age, actually lack the incredible depth and variety of classic games like Fallout or The Elder Scrolls series. This inspired me to start brainstorming some ideas for a modern game that would incorporate such depth, procedural generation (a la Roguelikes) and genuinely interesting encounters with NPCs (where your actions have definite consequences beyond a "good/evil" meter). At the same time, while paying homage to those classic games, I also wanted to work in some new ideas for interaction, more non-combat options and deeper combat inspired by certain modern turn-based games like the Disgaea series.

So, I took these concepts and decided to go ahead and try to create a game myself. At the moment, I'm handling all the programming and using sprites from open-source tilesets/spritesheets, plus my own terrible MS Paint art. I'm that indie. Of course, at some point soon I'll be working with a pixel artist to get something actually visually appealing (in a sort of 16bit style, not 8bit or overly retro.)

Technical Info

I'm developing the game using Java with Slick2D. Slick handles the rendering engine and input; everything else I've designed from scratch. Because I'm using Java, the game can be run on PC, Mac or Linux equally well. It may be possible to make a web version too, but I haven't thought of that yet.

Gameplay

At this stage, I'm still working on the core engine of the game, so there isn't a great amount of gameplay yet (per se). Here's the outline, nonetheless.

* The game world is grid/tile-based from an overhead perspective. Currently I'm using 32x32 tiles, though the game engine supports other tile sizes.

* The player controls a single character throughout the game, specifying a number of traits during character creation. These traits, such as Gender, Build, Race and Background (eg. Scholar, Peasant, Soldier, Minstrel), range from purely aesthetic to lightly influencing your set of starting abilities, stats and items. However, the game is built on open character advancement and does not use a traditional level-based system. To become a master swordsman, you must fight with swords regularly. To become a thief, you should try to pick difficult locks. To become stronger, you should partake in activities that require brute strength, and so forth.

* The game is turn based. When the player selects an action (eg. moving a space, opening dialog with an NPC, or using an item), a priority queue system is used to determine the order in which all actions are executed. So, an entity attacking with a slow spear will generally execute their action after an entity attacking with a fast dagger, for example. There are of course many ways to modify the initiative of actions.

* Most 'things' on the map are interactable. Map objects can have a number of properties which determine what you can do with them. For example, doors can be locked, unlocked, opened, closed, attacked, etc. Destructable objects have material and hardness values which influence how they can be demolished or manipulated. A "wood" object can be burned, while a "stone" object can't, the former can be destroyed with weapons easily, the latter can't, etc.

* NPCs have attitudes and personalities. Their opinion of the player varies based on the player's reputation and the player's observable actions, as well as the NPC's own personality. For example, a "cautious, meek" NPC will avoid confrontation, and talking down to them will not result in any conflict. A "paranoid" NPC will attack you at the drop of a hat. A "jovial" NPC is inclined to think you're likable and hilarious, so things that might offend others might actually make him love you more.

* Rather than having tens of thousands of lines of useless dialog, many NPCs are interacted with through emotions. In these dialogues, you do not necessarily pick a stock phrase to say, but instead say something jokingly or say something aggressively, etc. In other words, tone is an important part of NPC dialogue. Combined with the fact that your actions have consequences (as NPCs observe and react to what you do), this allows for some interesting situations. This in particular was inspired by Oblivion's "Whodunnit?" quest.

Progress

Completed:

* Map rendering and scrolling (based on player position).
* Basic user interface, text log, icons, menus, etc.
* Resolution-independence. The game area enlarges at higher resolutions, tile size can be changed easily, and so on.
* Player movement.
* Basic player actions like "Look", "Talk" (though dialogue system isn't in yet), "Get".
* Basic interaction with map objects like doors.
* Priority queue system, attacking.
* Status effects, unconsciousness, death.
* Inventory and equipment system, currency system.
* Using items like potions that confer various effects, attribute bonuses from items.
* Basic skill system with experience curve (picking an easy lock at a low level = fast advancement, picking an easy lock at a high level = slow or no advancement.)
* Basic NPC movement (mindless, currently.)
* Dropped item system (eg. killing an entity causes them to drop all their equipment, which you can then loot.)
* NPC attitudes and basic observation of player actions.
* Character saving.
* Content stored in XML files. This allows me (and potentially others, eventually) to create and edit NPC 'blueprints', items, skills, spells and map objects without touching a line of code. The game serializes to and from XML well.

I've been working on this for about three weeks now, and though I'm fairly inexperienced, I'm proud of the progress made so far. Currently, I'm working on:

* 'Active' skill system. Unlike most Roguelikes, there is an emphasis on various techniques with a spatial component. Think games like Disgaea or other tactical RPGs for an example of what I mean. For example, a "Line Slash" skill might send the player through three spaces in any direction, causing physical weapon damage to all targets in between and displacing the player.

* Basic NPC AI. While NPCs can 'see' the player and observe basic things, they don't yet do anything with this information. First, I am going to implement basic reactionary attacking and pathfinding, followed by a fight-or-flight option.

Screenshots

The graphics are atrocious. They are placeholders and will be better. You have been warned. (Also, these are scaled down from 1024x768)

http://zirconstudios.com/BigRPG/ss1.png
http://zirconstudios.com/BigRPG/ss2.png

Feedback

I welcome any and all constructive feedback. The folks of #tigIRC have already helped me with various design and technical questions, as have the LWJGL/Slick experts on #lwjgl on Freenode. I realize this is really early on but I'd like to share my experiences publicly, since I'm enjoying working on this game.

Thanks in advance! I look forward to posting a decent playable build soon :-)
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
anosou
Level 1
*


Bearded composer and game enthusiast.


View Profile WWW Email
« Reply #1 on: April 26, 2011, 01:18:41 PM »

Weeeeeeeeeeeeeeeeeeeeeeeee!  Beer!
Logged

Twitter @anosou

kevglass
Level 1
*



View Profile WWW
« Reply #2 on: April 27, 2011, 12:23:46 AM »

Awesome Smiley

Kev
Logged

zircon
Level 0
**


View Profile Email
« Reply #3 on: April 27, 2011, 09:04:33 PM »

I'm happy to say that I'm now working with a talented artist who will be providing nice SNES-style pixel art for the game. We are going with a style akin to games like FF6 or Chrono Trigger, where characters and objects can take up multiple tiles. This allows for more detail. Here's a very rushed screenshot using upscaled 16x16 tiles:



We've also agreed that at some point (not now) we would like to implement animation. This might be getting farther away from traditional Roguelike graphics but I'm OK with that. Even though the game is turn-based, I think BG + character animation will give it some life.

But one step at a time. Still working on the skill system. I spent most of the last day or two revamping the way the UI is stored/drawn for efficiency.
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
adamprack
Level 0
**


Composer


View Profile WWW Email
« Reply #4 on: April 27, 2011, 09:28:09 PM »

Hey, cool, I like it!  Glad to see you workin' on something like this.  Unless you're a different zircon (this is C7).
Logged

Need music?<--Check out my demo reel!

@Adam_Creations
zircon
Level 0
**


View Profile Email
« Reply #5 on: April 29, 2011, 10:14:00 AM »

Been working on the active skill system now, which is quite complex. If you think of games like Final Fantasy Tactics or Disgaea, different skills/spells can have different targeting shapes, origin/center points, fixed vs. free movement, etc. The game has to track the size and orientation of the shape as well as which tiles have to be clear or otherwise. I finally got all of that working, though it only supports some basic shapes/attack types right now, like Linear. Still, pretty nifty; once you go to use a skill, you can use the mouse to move the targeting shape or pivot it around based on the character position.
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
zircon
Level 0
**


View Profile Email
« Reply #6 on: April 30, 2011, 10:49:37 AM »

With the help of folks in #tigIRC (thanks Kjell!) I've implemented a line-of-sight system. This is used to help determine if monsters can see you or not (through obstacles) as well as calculating attack range for weapons like crossbows, spears, etc.

I've been working with my artist on revamping the UI as well. We're going to take away the right-side bar and simplify things:

* The player's vitals will be displayed in the bottom-left.
* Icons are to the right of that, things like Player Stats, Inventory/Equipment, Spells/Skills, etc.
* To the right of that, the combat log.
* Somewhere in there, or above, a 5-10 space bar which will allow players to hotkey spells, skills, items or actions (for example, interacting with an NPC.)
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
zircon
Level 0
**


View Profile Email
« Reply #7 on: May 06, 2011, 08:57:57 PM »

Lots of cool stuff + algorithms.

1. Free targeted skills are in, and they can have rotatable shapes.

2. When using a skill, you get a nice transparent display showing all possible spots you can use the skill.

3. Healing, damaging, and status-affecting skills are all done. Skills can have multiple effects.

4. Basic monster AI is in, and I'm refining it constantly. The AI observes everything around it - every action by the player (that it can see) along with actions of other AIs!) Not only that, but AIs can have goals beyond their current action. If you attack their buddies, they get mad. If you kick people while they're down, they'll hate you (or if they're cruel, maybe they'll respect you.) Cautious NPCs are more inclined to flee, etc. LOTS of work and expansion to do, again, but I think it's pretty exciting and should pave the way for deep AI in this game.

5. Basic A*-based pathfinding. This took me most of the day. An AI that wants to kill you now knows how to maneuver through and around obstacles (of all sorts) to get to you, and will stop when they're in range to attack. I'm very proud of this since I didn't use an existing implementation but wrote one from scratch instead.

6. The gorgeous 16-bit style background art is looking fantastic. Will post more screenshots when the beautiful stuff isn't sullied by my awful MSPaint drawings...

7. Characters can now be displayed as larger than 32x32 (right now, only in the vertical direction). This is great so that we can have classic JRPG-style sprites where the characters are bigger than tiles.
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
Inanimate
Global Moderator
Level 10
******


☆HERO OF JUSTICE!☆


View Profile
« Reply #8 on: May 06, 2011, 10:05:21 PM »

Oh my god I love you.

Personally, I like parties a lot more; more customization. But, this sounds great!

It seems like you are looking to Might and Magic (the early ones) and Ultima for inspiration. If you aren't, DO SO. Might and Magic's customization and open world is still amazing, and Ultima has great interactions.
Logged
zircon
Level 0
**


View Profile Email
« Reply #9 on: May 08, 2011, 07:09:41 PM »

Thanks for the kind words. I've played some games from both series you've mentioned but not the early M&M games. Any one in particular you would recommend? I'll happily play it.

Still working on AI. Right now I'm working on a way of enabling NPCs to determine priorities in combat. It's one thing to select the most injured ally from a list, or the most threatening enemy. It's another to reconcile the two and determine which is more important (especially when factored in with the aforementioned attitude system.) But it's coming along!

Not only that, I'm now working with a very talented writer who is helping to flesh out the backstory of the world and various other cool things. Should be a fruitful collaboration indeed. The goal within the next few months is to have a very fleshed-out vertical slice of gameplay: a bustling town and an outdoor area to be explored, plus some quests. So, you'll get lots of NPC interaction, explore sets of skills, and fight stuff (if you want.) That should make for a good prototype.
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
zircon
Level 0
**


View Profile Email
« Reply #10 on: May 10, 2011, 09:39:33 PM »

I've been continuing my work with AI. NPCs prioritize actions/targets differently in combat, and they can now use skills (albeit a bit stupidly.) It's refined enough for now: next up, I'm going to implement the dialog system next. As described in the OP, it will be based on emotions/delivery styles as opposed to having lots of filler text. We'll see where that goes. I haven't really sketched out any pseudocode for it yet...

On the art front, here's a quick screenshot of some of the updated tiles we're using. FYI this is absolutely a work-in-progress. Stuff needs to be cleaned up, made more seamless, etc. Still, I'm very happy with the direction:



Our writer, Steve G. (from these forums!) has been doing a great job with creating an interesting world, characters and locations. I only had vague ideas initially but things are getting more fleshed out now.

The game's setting is roughly steampunk. There's some magic involved, but not too much - it's rare and even treated as heretical/demonic by some. Technology is mainly limited to guns and simple machines as opposed to complex devices, computers, cars, and so on. The first vertical slice of the game will take place in a coastal region set next to an ancient ruin, where the player will have the opportunity to make an impact on the village (and its inhabitants.) I'll elaborate more in future posts :-)
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
zircon
Level 0
**


View Profile Email
« Reply #11 on: May 20, 2011, 08:26:33 PM »

Been working hard on UI stuff for the last week or so. I think the interface here is going to be incredibly important, which is why I'm not trusting myself entirely with it, and instead am collaborating with our artist, Andrew Luers, to develop something intuitive and pretty. I'm now almost done converting the whole system to something very modular, where new icons, overlays, clickable text and buttons can be dropped in quite easily. This has involved basically tearing down all the old UI code and creating an entirely new UIManager class which takes care of all the UI elements (interactable and otherwise) along with rendering and UI-related input.

The next step is creating the skill/item hotbar, a la games like Diablo 2, Guild Wars or World of Warcraft. You'll be able to drag basically any 'action' to a 6-slot bar for easy access, which I think will help the game's playability and learning curve.
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
Guard
Level 0
***

Java's cool.


View Profile Email
« Reply #12 on: May 20, 2011, 08:31:51 PM »

Wow, this looks very very nice so far. From what I seen, it has a lot of potential! :D
Logged

Programming since Sept 2009
Web Developing since 2006
zircon
Level 0
**


View Profile Email
« Reply #13 on: June 03, 2011, 09:21:47 AM »

Thanks!

I know I haven't updated much lately, been busy with my day job (music composition and sound design). However, we have a thorough outline now for the beginning (prototype) area of the game. The UI has also been much-improved. As I'm learning, it's important to define solid systems early on so you don't have to rewrite stuff later. I now have some pretty good UI code, but there's lots more to do to make sure it's future-proofed.
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
zircon
Level 0
**


View Profile Email
« Reply #14 on: June 20, 2011, 07:51:50 PM »

I've been taking a vacation for the last 5 days or so and getting a lot of new code done here. I think my new UI system is all done, finally.

* Dragging and dropping (eg. rearranging your inventory, dragging abilities to the hotbar)
* UI container objects that can have a number of 'children' elements.
* Text elements, clickable and otherwise

It's really, really boring to describe but it took an immense amount of work and I think it's pretty flexible now.

I've also started on the dialog system, which will be another huge challenge. There's not much to it yet but I'm proud that I have character-by-character rendering done. In other words, with variable speed, dialog with NPCs shows up like old-school RPGs ("typed in"). Woo.
Logged

Duck It! Pseudorandom 2D platformer in HTML5/Impact (play for free!)

Return All Robots! - Old-school action/puzzle hybrid + robots (PC/XBIG)
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic