WIP - 'The Young Prince' - Party based RPG

Started by Matty, September 21, 2018, 14:40:06

Previous topic - Next topic

Matty

Greetings again,

I've started work on a new game inspired by my own work on the 'maze' game competition (which I may decide to not enter my entry in the end anyway - even though I'm happy with it)

This game is a party based rogue-like rpg sort of thing where you have a randomly generated team of 4 characters and can visit towns, dungeons and so on.

Towns have shops such as:

1. Shops for buying equipment
2. Libraries for buying magic spells
3. Taverns for hiring replacement team members
4. Temples for curing diseases, healing illnesses and so on.

Dungeons come in two flavours:

Quest dungeons and non quest dungeons.

Non Quest dungeons are 'at the level of the player' and reset after being cleared after a time.

Quest dungeons related to the main quest which is:

....rescue the 'Young Prince' from the evil Liche who has kidnapped him.

So the gameplay will be that the player moves around a map, fights monsters and clears out dungeons to level up, does stuff in towns to assist them, and reaches sufficient power/level to fight against the 3 boss monsters around the map.

here is a screenshot of development so far



http://www.mattiesgames.com/youngprince/

...and you can see the map as a whole here (no user interaction beyond the first click)

Matty

Town backdrop...buildings to be placed in foreground.



Matty

Buttons and modified button class to stop repeating code all the way through my process...



New button code is this:


function domode(mode)
{
var lrvalue = true;
//various actions in here
return lrvalue;
}

function dobutton(cat,mode,sx,sy,fx,fy,text,font,clr)
{
var lrvalue = false;
drawimage(images[cat].img,(sx+fx)/2,(sy+fy)/2,0,1,1,0,0,0,1,0);
drawtext((sx+fx)/2,(sy+fy)/2,text,clr,font,true);
if(mouse.x>=sx && mouse.x<=fx && mouse.y>=sy && mouse.y<=fy)
{
mouseover = true;
mouseimg = cat;
mouseimgx = (sx+fx)/2;
mouseimgy = (sy+fy)/2;
if(mouse.clicked!=mouse.oclicked && mouse.clicked==false)
{
mouse.oclicked=false;
lrvalue = domode(mode);
}
}
return lrvalue;
}

Matty

A number of interfaces created based off a standard template.....


iWasAdam

nice grey and good contrast with purple.
but...
beware of using "a button" for a title as it looks like a button. think clarity and consistency.

check out this sort of thing for ideas. I'm not saying the colors /look is any better or worse, but you at least know what is clickable :) . or google rpg game ui


Derron

@ IWasAdam
nice GUI template you've "promoted" here - albeit it does look "fixed resolution" (button design should be ninepatch based). But also this has issues - look at the "item shop window". Bottom right has the "money area" - and designwise you should never go above 999 Euro (else it wont fit into the circle). Prices for items suggest 200 - so I assume a 4 digit amount of money should be possible.
Also some decorative elements are a bit "blurry" (window decoration) compared to the grainy-look of the circular-buttons.
Aside of that nitpicking it looks pretty cool and I saved that for checking it out later on (eg. painting similar stuff in photoshop to "learn" something out of it).


@ Matty
Do not forget to _center_ your button texts in a "correct" manner. Your text alignment seems to take letters below "baseline" into account. So a "gqp" has 3 letters cutting the baseline. Nonetheless you should only center for text not doing this. means: measure the height of "ABCD" (not Q - as it cuts the baseline) and you get the height of a "standard text". Use this to align your text then (text.Y = button.y + 0.5*(buttonheight - ABCDheight)). For text blocks (eg quest texts) the line height to use of course should be based on a different text to measure - eg. "Qq'_" so it contains one of the "most often" very "at the top" character, and the ones cutting the baseline the most. If you would always align according to the really used texts, the line height would be varying - and no, using a "max(lineHeights)" approach would not work as it leads to little "jumping" if you once replace the text (eg other tooltip content).


bye
Ron

iWasAdam

@ Derron.
Yep. it's not mine, but just something that I could link to easily ;)

It's definitely not perfect, but gives an 'idea' of possibly how to approach things.

I think with a little encouragement Matty can take a concept and make it into his own style :)

Matty


Matty

#8
Attached my development notes as I go.

Matty

More notes this morning

Matty

Quests added (code for it)

Overland map works too




Matty


Qube

Nice style you have going on there, I like it :)
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Matty

Attached below....screenshot from phone with some enemies in one of the mazes.

Steve Elliott

Some nice ideas and isometric games can be cool...But have you ever thought of buying in some art or moving away from the graphics tablet?  IMO the graphics need a sharpness and especially detail.  Graphics tablets can give a painterly look, but I don't think that suits small sharp detailed sprites - which the game requires.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb