What kind of art? What kind of future? What kind of engine?

Make games! Discuss those games here.

Moderators: Bob the Hamster, marionline, SDHawk

What would you like to see finished?

Animated Enemies, Animated Everything, More Animations!
10
33%
Futuristic Tileset/Setting with Technology and Robuts and GONZ
1
3%
Beautiful Fancy/Arty stuff :lp like a pleasant dream :3 Can I haz chibi stylez?
0
No votes
Traditional yet basic RPG fare. Classics are enduring.
3
10%
Wacky Crazy Out theeeeere maaaaaan kinda thingy. Hey, pass the bong!
3
10%
Serious, realistic, gritty stuff. Let's be serious. We're all going to die. CUSTOM will never be finished. I'm never going to get married and I'm poor and... Well, fantasy is my only escape from dreary socio-political garbage. That and satirical video gam
1
3%
I slime in a box and I call it art. You slime in my mouth and call it love. The world is covered with slime. I'm slippery and I must stand.
6
20%
I slime in a box and I call it art. You slime in my mouth and call it love. The world is covered with slime. I'm slippery and I must stand.
6
20%
 
Total votes: 30

User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

I really want to make a game about a feudal hamster kingdom set during a period of political turmoil and social strife/upheaval...

The main characters are a band of hamster knights, but possibly it would have an eastern setting, with samurai and ninja rather than european style knights.

They also don't have to be hamsters. I made some character graphics for a ragtag group of anthro characters including a plucky nerd bird magical scholar, a charming rodent rogue sophisticate, and a rough'n'tough lion-man kinda thing.
Attachments
They're supposed to be knights of a european/western design (roughly)
They're supposed to be knights of a european/western design (roughly)
hamsterblade0006.gif (203.64 KiB) Viewed 8515 times
Last edited by SwordPlay on Sat Jun 10, 2017 12:57 pm, edited 2 times in total.
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7684
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

Haha! :D I like it
User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

Thanks! I'm glad.
it's kind of like an homage?
Attachments
Hamsters of a (possibly) eastern bent
Hamsters of a (possibly) eastern bent
hamsterblade0009.gif (208.06 KiB) Viewed 8499 times
Last edited by SwordPlay on Thu Sep 07, 2017 5:55 pm, edited 1 time in total.
User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

I'm working on a text adventure engine thing-y.
So far, it has (some) (a few) features.

It has a note-log, which (can) record details automatically. You can also jump to a page number.
I hope to expand this functionality into a quest-log type thing.

Textboxes also have some toggle options, for example, 2 info boxes for each room.

It has 6 player- choices (so far) and I'm not sure how to script them. At this rate, I may as well write everything in the main loop.

I am also planning to have pop-ups displayed on mouse-over/mouse-hover over graphic slices, such as names and short descriptions.
Attachments
toggling various thingummies
toggling various thingummies
the last night0008.gif (302.8 KiB) Viewed 8359 times
jump to a page number
jump to a page number
the last night0004.gif (81.91 KiB) Viewed 8362 times
Last edited by SwordPlay on Thu Sep 21, 2017 12:01 am, edited 2 times in total.
TMC
Metal King Slime
Posts: 4310
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Looks neat! A little hard to understand what's going on without more realistic examples.
So the log is a record of room descriptions you've read?
I wonder about how you have two pages of description for each room. Is that just for descriptions that don't fit all at once, like clicking to advance to the next box? Seems a little awkward to click in the corner rather than anywhere on the box or a keypress.

I would recommend try to split up the definition of the behaviour of parts of the UI in separate scripts for organisation, rather than mashing everything together in one script.
User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

The 2 boxes are meant to be separate (static and dynamic information)

The log works by adding the content of a string.
That string is also used to write the other text slices.
If you "Add Note" whenever you write a text slice, it will also appear in the log.
I would like if players clicked on (any) text slices to add them to the log.

Not sure what you mean by that last part.

So far, the user can get text from, and write text to any of the main text slices (2 info boxes, a choice box and a dialogue box) all of which can be sent to the log.
TMC
Metal King Slime
Posts: 4310
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Statc and dynamic info? OK, intereseting. Unusual. If the dynamic info changes, does it switch to the dynamic page?

I can understand players entering text into the log or a note book, but why are the other boxes modifiable by the player? What's that for?

The last part was in response to "It has 6 player- choices (so far) and I'm not sure how to script them. At this rate, I may as well write everything in the main loop. "
User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

Ah yeah. Good points. I just wrote a few lines to make each toggle focus on the contents when it is changed.

Sorry about the bit about writing slices. I guess that was confusing.
Players would not be able to write to (any) text slice without text input, and then having the game call a script "Write (slice)"
I can think of a few ways it might be useful, but it is not intended as a gameplay feature. Perhaps for writing to independent slices (pop-ups, or temporary displays), but not game elements themselves. Actually, I might try to integrate something like that (like a journal or codeword feature).

Yes, splitting the behaviours is great advice. Thank you for that. <3
Last edited by SwordPlay on Wed Sep 27, 2017 4:16 am, edited 1 time in total.
User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

not sure if something like this already exists. But I'm making it available for anyone interested. You can alter this to make it accept different graphic types too. I cribbed some of it from the ps dictionary
call this from your main loop

Code: Select all

script, draw NPC, begin
variable&#40;copy number, su count, current su, suspr&#41;
variable&#40;ID&#41;
variable&#40;s1,s2,s3,s4,s5,s6,s7,s8&#41;

## ID is the NPC to draw on.
## s1-s8 are the graphics to load for each frame
## change alignment to bottom edge for 3d effect

ID&#58;=1

## s1-s8 are the small enemy graphics that will be loaded
s1&#58;=2
s2&#58;=3
s3&#58;=4
s4&#58;=5
s5&#58;=6
s6&#58;=7
s7&#58;=8
s8&#58;=9

  su count &#58;= NPC copy count&#40;ID&#41;

  for &#40;copy number, 0, su count -- 1&#41; do, begin
    current su &#58;= NPC reference&#40;ID, copy number&#41;

### animating larger graphics by tying them to a walkabout set

IF&#40;
first sprite child&#40;first sprite child&#40;get npc slice&#40;current su&#41;&#41;&#41;&#41;
THEN&#40;
suspr &#58;= first sprite child&#40;first sprite child&#40;get npc slice&#40;current su&#41;&#41;&#41;	&#41;
ELSE&#40;
IF&#40;NPC frame &#40;current su&#41;==1&#41;THEN&#40;suspr&#58;=load small enemy sprite&#40;s1&#41;&#41;
IF&#40;NPC frame &#40;current su&#41;==0&#41;THEN&#40;suspr&#58;=load small enemy sprite&#40;s2&#41;&#41;
center slice&#40;suspr&#41;
## Add align/anchor to bottom edge if you prefer
reparent to npc &#40;suspr, current su&#41;&#41;

#### update directions

IF&#40;NPC frame &#40;current su&#41;==1&#41;THEN&#40;
SWITCH&#40;NPC direction&#40;current su&#41;&#41;DO&#40;
CASE&#40;Left&#41;DO&#40;
replace sprite &#40;suspr, spritetype&#58;small enemy, s7&#41;&#41;
CASE&#40;UP&#41;DO&#40;
replace sprite &#40;suspr, spritetype&#58;small enemy, s1&#41;&#41;
CASE&#40;DOWN&#41;DO&#40;
replace sprite &#40;suspr, spritetype&#58;small enemy, s5&#41;&#41;
CASE&#40;Right&#41;DO&#40;
replace sprite &#40;suspr, spritetype&#58;small enemy, s3&#41;&#41;

&#41; ## Switch
&#41; ## THEN

IF&#40;NPC frame &#40;current su&#41;==0&#41;THEN&#40;
SWITCH&#40;NPC direction&#40;current su&#41;&#41;DO&#40;
CASE&#40;Left&#41;DO&#40;
replace sprite &#40;suspr, spritetype&#58;small enemy, s8&#41;&#41;
CASE&#40;UP&#41;DO&#40;
replace sprite &#40;suspr, spritetype&#58;small enemy, s2&#41;&#41;
CASE&#40;DOWN&#41;DO&#40;
replace sprite &#40;suspr, spritetype&#58;small enemy, s6&#41;&#41;
CASE&#40;Right&#41;DO&#40;
replace sprite &#40;suspr, spritetype&#58;small enemy, s4&#41;&#41;
&#41; ## Switch
&#41; ## THEN


&#41; ## FOR this ID

end

and this is a 2-frame version. It works by flipping the sprite.

Code: Select all

 variable&#40;copy number, su count, current su, suspr&#41;
variable&#40;ID&#41;
variable&#40;s1,s2&#41;

ID&#58;=
s1&#58;=
s2&#58;=
  su count &#58;= NPC copy count&#40;ID&#41;

  for &#40;copy number, 0, su count -- 1&#41; do, begin
    current su &#58;= NPC reference&#40;ID, copy number&#41;

### animating larger graphics by tying them to a walkabout set

IF&#40;
first sprite child&#40;first sprite child&#40;get npc slice&#40;current su&#41;&#41;&#41;&#41;
THEN&#40;
suspr &#58;= first sprite child&#40;first sprite child&#40;get npc slice&#40;current su&#41;&#41;&#41;	&#41;
ELSE&#40;
IF&#40;NPC frame &#40;current su&#41;==1&#41;THEN&#40;suspr&#58;=load small enemy sprite&#40;s1&#41;&#41;
IF&#40;NPC frame &#40;current su&#41;==0&#41;THEN&#40;suspr&#58;=load small enemy sprite&#40;s2&#41;&#41;
center slice&#40;suspr&#41;
reparent to npc &#40;suspr, current su&#41;&#41;

#### update directions
IF&#40;
NPC direction&#40;current su&#41;==RIGHT&#41;
THEN&#40;
horiz flip sprite&#40;suspr&#41;&#41;
ELSE&#40;
horiz flip sprite&#40;suspr, false&#41;&#41;
IF&#40;NPC frame &#40;current su&#41;==1&#41;THEN&#40;replace sprite &#40;suspr, spritetype&#58;small enemy, s1&#41;&#41;
IF&#40;NPC frame &#40;current su&#41;==0&#41;THEN&#40;replace sprite &#40;suspr, spritetype&#58;small enemy, s2&#41;&#41;
Both kinds of script are displayed in the gif
Attachments
trying 8-frame 4-dir small enemy graphics.<br />The bug enemies are using 2-frame graphics.
trying 8-frame 4-dir small enemy graphics.
The bug enemies are using 2-frame graphics.
NIGHTMARES0004.gif (93.03 KiB) Viewed 8255 times
Last edited by SwordPlay on Sun Oct 08, 2017 3:21 pm, edited 4 times in total.
TMC
Metal King Slime
Posts: 4310
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Ah, I had wondered exactly what you were doing there! No, I haven't seen anybody else post scripts, nor use, walkabouts larger than hero battle sprites... with the possible exception of Tim-Tim's Tower? I actually wasn't sure whether it was possible change NPC/hero sprites to something with less than 8 frames without getting an error. So yes, those could be useful for people. I recommend you indent your scripts though; these are rather hard to read.
User avatar
Spoonweaver
Liquid Metal King Slime
Posts: 6516
Joined: Mon Dec 08, 2008 7:07 am
Contact:

Post by Spoonweaver »

Yes, you get an error when you try the normal walk tall thing with a non-hero sprite.
Error said something about frames.
Clearly because only walkabout or hero pictures have frames so when you load anything else, there's no frames to animate into.

As far as games where other non-hero graphics are used, The Axe Cop ski game almost used small enemy graphics. However, there are several reasons why using them isn't idle. If you handle the frames yourself, you have to deal with layering yourself too. This includes overhead tiles, map layering, other walkabouts, and possible HUD slices/sprites.
Though, it looks like parenting copies the npc layering? That's pretty interesting, I may need to look into that.
Last edited by Spoonweaver on Sun Oct 08, 2017 1:22 pm, edited 2 times in total.
TMC
Metal King Slime
Posts: 4310
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Oh, of course, it works because Sword parented another sprite to the walkabout's sprite, rather than changing the walkabout sprite itself.

Yes, parenting any slice to another one means that get drawn together (parents before children). The sorting of slices isn't affected by what children they have; it doesn't matter how far they stick out belong the edges of the parent slice.

You shouldn't have had trouble with the layering for the skiing game. Just parent the slices to the walkabout layer and they'll be automatically layered according to the Y position of their bottom edge, just like walkabouts are. Alternatively, you can parent the slices to some other slice set to "Autosort children: by bottom edge". Note: we forgot to add a script command to set a slice's autosort, so you need to set it in the slice editor instead.
User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

TMC wrote: You shouldn't have had trouble with the layering for the skiing game. Just parent the slices to the walkabout layer and they'll be automatically layered according to the Y position of their bottom edge,
but what about when you want layering effects to occur in a plane other than the vertical axis? e.g. diagonal perspective
TMC
Metal King Slime
Posts: 4310
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

In that case, I think that sorting just by Y probably wouldn't look too bad, and probably would be indistinguishable if you stuck to tile-based movement. But to be totally correct you can script the sort order. However, as I said there's not yet a script command to change the autosort type of the walkabout layer. That's not hard to add, though.
Last edited by TMC on Mon Oct 09, 2017 1:38 am, edited 2 times in total.
User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

So I've been cleaning up my scripts.

Here is the script for drawing sprites on NPCs, with 3 variations
1 frame - a static image,
2 frame - corresponds to walk frame,
8 frame - corresponds to full walkabout set

This is intended to be a convenient format that takes arguments for everything.
The first argument is the NPC,
the last argument is the sprite size (1/2/3 correspond to small/med/large)
and the in-between arguments are the sprite numbers.

Anyone may use, repost, modify etc., this script.

I'm sure I didn't quite write it efficiently, but still.
Feel free to use it in your projects!
I enclosed some sprites to test it with.

Code: Select all

## HOW TO USE THIS SCRIPT
## There are 3 commands&#58;
## Draw NPC1. This maps 1 sprite to an NPC.
## Draw NPC2. This maps 2 sprites to an NPCs walk animation, regardless of direction
## Draw NPC8. This maps 8 sprites to an NPCs walkabout
## The first argument is the ID of the NPC you want to draw on.
## The next arguments are the number of the sprites
## The last argument is the sprite type &#40;small/medium/large correspond to 1/2/3&#41;



script,draw NPC1, ID=0, s1=0, size=0, begin

  variable&#40;copy number, su count, current su, suspr&#41;


  su count &#58;= NPC copy count&#40;ID&#41;

  for &#40;copy number, 0, su count -- 1&#41; do, begin
    current su &#58;= NPC reference&#40;ID, copy number&#41;

switch&#40;size&#41;do&#40;
case&#40;1&#41;do&#40;suspr&#58;=load small enemy sprite&#40;s1&#41;&#41;
case&#40;2&#41;do&#40;suspr&#58;=load medium enemy sprite&#40;s1&#41;&#41;
case&#40;3&#41;do&#40;suspr&#58;=load large enemy sprite&#40;s1&#41;&#41;
&#41;

center slice&#40;suspr&#41;
reparent to npc &#40;suspr, current su&#41;
## add anchor/align commands here

  end

end

#############################################
script, draw NPC2, ID=0, s1=0, s2=0, size=1, begin


  variable&#40;copy number, su count, current su, suspr&#41;
  su count &#58;= NPC copy count&#40;ID&#41;
  for &#40;copy number, 0, su count -- 1&#41; do, begin
    current su &#58;= NPC reference&#40;ID, copy number&#41;

### animating larger graphics by tying them to a walkabout set

IF&#40;
first sprite child&#40;first sprite child&#40;get npc slice&#40;current su&#41;&#41;&#41;
&#41;
THEN&#40;
suspr &#58;= first sprite child&#40;first sprite child&#40;get npc slice&#40;current su&#41;&#41;&#41;	
&#41;
ELSE&#40;
IF&#40;NPC frame &#40;current su&#41;==1&#41;THEN&#40;

switch&#40;size&#41;do&#40;
case&#40;1&#41;do&#40;suspr&#58;=load small enemy sprite&#40;s1&#41;&#41;
case&#40;2&#41;do&#40;suspr&#58;=load medium enemy sprite&#40;s1&#41;&#41;
case&#40;3&#41;do&#40;suspr&#58;=load large enemy sprite&#40;s1&#41;&#41;
&#41;
&#41;
IF&#40;NPC frame &#40;current su&#41;==0&#41;THEN&#40;

switch&#40;size&#41;do&#40;
case&#40;1&#41;do&#40;suspr&#58;=load small enemy sprite&#40;s2&#41;&#41;
case&#40;2&#41;do&#40;suspr&#58;=load medium enemy sprite&#40;s2&#41;&#41;
case&#40;3&#41;do&#40;suspr&#58;=load large enemy sprite&#40;s2&#41;&#41;
&#41;
&#41;
center slice&#40;suspr&#41;
reparent to npc &#40;suspr, current su&#41;
&#41;

#### update directions
IF&#40;
NPC direction&#40;current su&#41;==RIGHT
&#41;
THEN&#40;
horiz flip sprite&#40;suspr&#41;
&#41;
ELSE&#40;
horiz flip sprite&#40;suspr, false&#41;
&#41;
IF&#40;NPC frame &#40;current su&#41;==1&#41;THEN&#40;replace sprite &#40;suspr, spritetype&#58;small enemy, s1&#41;&#41;
IF&#40;NPC frame &#40;current su&#41;==0&#41;THEN&#40;replace sprite &#40;suspr, spritetype&#58;small enemy, s2&#41;&#41;

&#41;

end

##################################################################################


## Id is the NPC to draw on.
## s1-s8 are the graphics to load for each frame
## change alignment to bottom edge for 3d effect

script, draw NPC8, ID=0, s1=0, s2=0, s3=0, s4=0, s5=0, s6=0, s7=0, s8=0, size=1, begin

  variable&#40;copy number, su count, current su, suspr, spritetype&#41;
switch&#40;size&#41;do&#40;
case&#40;1&#41;do&#40;spritetype&#58;=load small enemy sprite&#41;
case&#40;2&#41;do&#40;spritetype&#58;=load medium enemy sprite&#41;
case&#40;3&#41;do&#40;spritetype&#58;=load large enemy sprite&#41;
&#41;

  for &#40;copy number, 0, su count -- 1&#41; do, begin
    current su &#58;= NPC reference&#40;ID, copy number&#41;

### animating larger graphics by tying them to a walkabout set

IF&#40;
first sprite child&#40;first sprite child&#40;get npc slice&#40;current su&#41;&#41;&#41;
&#41;
THEN&#40;
suspr &#58;= first sprite child&#40;first sprite child&#40;get npc slice&#40;current su&#41;&#41;&#41;	
&#41;
ELSE&#40;
IF&#40;NPC frame &#40;current su&#41;==1&#41;THEN&#40;
switch&#40;size&#41;do&#40;
case&#40;1&#41;do&#40;suspr&#58;=load small enemy sprite&#40;s1&#41;&#41;
case&#40;2&#41;do&#40;suspr&#58;=load medium enemy sprite&#40;s1&#41;&#41;
case&#40;3&#41;do&#40;suspr&#58;=load large enemy sprite&#40;s1&#41;&#41;
&#41;
&#41;
IF&#40;NPC frame &#40;current su&#41;==0&#41;THEN&#40;
switch&#40;size&#41;do&#40;
case&#40;1&#41;do&#40;suspr&#58;=load small enemy sprite&#40;s2&#41;&#41;
case&#40;2&#41;do&#40;suspr&#58;=load medium enemy sprite&#40;s2&#41;&#41;
case&#40;3&#41;do&#40;suspr&#58;=load large enemy sprite&#40;s2&#41;&#41;
&#41;
center slice&#40;suspr&#41;
reparent to npc &#40;suspr, current su&#41;
## add align/anchor commands for perspective/3d effect such as bases
&#41;
&#41;
#### update directions

IF&#40;NPC frame &#40;current su&#41;==1&#41;THEN&#40;
SWITCH&#40;NPC direction&#40;current su&#41;&#41;DO&#40;
CASE&#40;Left&#41;DO&#40;
replace sprite &#40;suspr, spritetype, s7&#41;
&#41;
CASE&#40;UP&#41;DO&#40;
replace sprite &#40;suspr, spritetype, s1&#41;
&#41;
CASE&#40;DOWN&#41;DO&#40;
replace sprite &#40;suspr, spritetype, s5&#41;
&#41;
CASE&#40;Right&#41;DO&#40;
replace sprite &#40;suspr, spritetype, s3&#41;
&#41;

&#41; ## Switch
&#41; ## THEN

IF&#40;NPC frame &#40;current su&#41;==0&#41;THEN&#40;
SWITCH&#40;NPC direction&#40;current su&#41;&#41;DO&#40;
CASE&#40;Left&#41;DO&#40;
replace sprite &#40;suspr, spritetype, s8&#41;
&#41;
CASE&#40;UP&#41;DO&#40;
replace sprite &#40;suspr, spritetype, s2&#41;
&#41;
CASE&#40;DOWN&#41;DO&#40;
replace sprite &#40;suspr, spritetype, s6&#41;

&#41;
CASE&#40;Right&#41;DO&#40;
replace sprite &#40;suspr, spritetype, s4&#41;
&#41;
&#41; ## Switch
&#41; ## THEN


&#41; ## FOR full animation
end
Attachments
doubles for up/down direction
doubles for up/down direction
updown1.bmp (798 Bytes) Viewed 8048 times
doubles for up/down direction
doubles for up/down direction
updown2.bmp (798 Bytes) Viewed 8048 times
left1.bmp
left1.bmp (798 Bytes) Viewed 8048 times
left2.bmp
left2.bmp (798 Bytes) Viewed 8048 times
right1.bmp
right1.bmp (798 Bytes) Viewed 8048 times
right2.bmp
right2.bmp (798 Bytes) Viewed 8048 times
Last edited by SwordPlay on Thu Dec 21, 2017 1:36 pm, edited 3 times in total.
"Imagination. Life is your creation."
Post Reply