Synthetic Reality Forums Post New Topic  New Poll  Post A Reply
my profile | directory login | register | search | faq | forum home

  next oldest topic   next newest topic
» Synthetic Reality Forums » Other Games » Arcadia » TurnAbout Dev/Release Notes (Page 2)

  This topic comprises 3 pages: 1  2  3   
Author Topic: TurnAbout Dev/Release Notes
abyaly
Healthy Member
Member # 4498

Icon 1 posted      Profile for abyaly   Author's Homepage         Edit/Delete Post 
Dan, could you add these to TurnAbout? ^^

TA_IsMouseDown( button )
TA_MouseLoc()
TA_FillSolidCircle( handle, x, y, w, h, color )
TA_DrawCircle( handle, x, y, w, h, width, color )

--------------------
"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Posts: 152 | From: yesterday | Registered: Nov 2003  |  IP: Logged
Hesacon
Obsessive Member
Member # 3724

Member Rated:
4
Icon 1 posted      Profile for Hesacon   Author's Homepage   Email Hesacon   Send New Private Message       Edit/Delete Post 
Aby is scheming again.

--------------------
SoV: Exalted Devout Oracle | World Developer | The Black Guard
Outside is just a prank older kids tell younger kids at Internet Camp

Posts: 9479 | From: NY | Registered: Apr 2003  |  IP: Logged
Maghnus
Healthy Member
Member # 6517

Member Rated:
4
Icon 1 posted      Profile for Maghnus   Author's Homepage   Email Maghnus   Send New Private Message       Edit/Delete Post 
I'll admit I just started working with this, but it gets seriously POed when I try to use the mod function. I'm sure it's something easy to correct, but I don't know the error messages well enough.

error running lua function: TA_OnTick
attempt to call global `mod' (a nil value))

My goal was to run the tick commands only 10x per secondm so the obvious (and cheap) way would be to do something like (in c++):

code:
 
if ( msec % 100 == 0 )
{

//do stuff

}

Here's my LUA interpretation:

code:
 
function TA_OnTick( msec )
if ( math.mod( msec, 100 ) == 0 ) then
-- do stuff
end
end

Boo the forums removing leading whitespace and forcing me to add code tags...

[by the way, this won't work anyway, since you are not called every single millisecond, so you could easily miss your launch window. To do something ABOUT every 100 msec, you should do this:

code:
lastTimeIDidIt = 0 -- global value

TA_OnTick( msec )
if( msec >= (lastTimeIDidIt + 100) ) then
lastTimeIDidIt = msec
-- Now, do it
end
end

-s ]

[ 08-12-2006, 05:25 PM: Message edited by: samsyn ]

--------------------
Who is Hotaru Tomoe?

Posts: 188 | From: Stratosphere | Registered: Sep 2005  |  IP: Logged
abyaly
Healthy Member
Member # 4498

Icon 1 posted      Profile for abyaly   Author's Homepage         Edit/Delete Post 
a % b == a - math.floor(a/b)*b

--------------------
"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Posts: 152 | From: yesterday | Registered: Nov 2003  |  IP: Logged
GuppyMan
Compulsive Member
Member # 44

Member Rated:
4
Icon 1 posted      Profile for GuppyMan   Email GuppyMan   Send New Private Message       Edit/Delete Post 
Have not tried it, but shouldn't it be:

math.fmod(a,b)

http://www.lua.org/manual/5.1/manual.html#5.6

[ 06-26-2006, 06:28 PM: Message edited by: GuppyMan ]

Posts: 2675 | From: Washington | Registered: Dec 1998  |  IP: Logged
abyaly
Healthy Member
Member # 4498

Icon 1 posted      Profile for abyaly   Author's Homepage         Edit/Delete Post 
The LUA site also claims to support the % operator.

[For whatever reason, our version of lua does not seem to support the % operator. -s]

[ 08-12-2006, 05:24 PM: Message edited by: samsyn ]

--------------------
"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Posts: 152 | From: yesterday | Registered: Nov 2003  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
does it? I couldn't find % on lua.org

but yes, my example should have read

math.mod()

since it is part of the math library. I prefer the percent sign if it actually works, though.

But not enough to actually make an override operation. I was pleased that I remembered it was mod( a, b ) when I wrote that page, and didn't remember the "math." bit, sorry.

version .0008 has some new things:

TA_OnMouse( buttonId, clickType, x, y )

x, y = TA_MouseLoc()

colorIndex = TA_GetPixel( handle, x, y )

TA_SetPixel( handle, x, y, colorIndex )

and...

TA_Ellipse( handle, rect, filled, fillColor, lineWidth, lineColor )

This should work:
http://www.synthetic-reality.com/turnAboutAPI.htm#TA_Ellipse
---

Note: to sense current state of mouse buttons, use TA_IsKeyDown() with the appropriate virtKey code (I put some examples on the site, including the left and right mouse buttons)

[ 06-26-2006, 10:47 PM: Message edited by: samsyn ]

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
Maghnus
Healthy Member
Member # 6517

Member Rated:
4
Icon 1 posted      Profile for Maghnus   Author's Homepage   Email Maghnus   Send New Private Message       Edit/Delete Post 
Whatever. [Razz] Anyway, here's my list of funcitons I would like to have. I see that the API list has been updated already to include mouse location. I'm also happy you wrote the mouse click funciton that way as it allows for potential drag detection. (very useful)

*I would like a funciton or two to play midis and possibly wavs. [both exist now. -s]

*I also thing if I'm to have any sort of progressive game we need some form of datafile. I reccomend text files (since they're harmless), but then there's the issue of people altering their own data as they please. I'll let you work that our as you please and it'll be good enough for me. [yeah, something. I am hoping I can 'serialize a table' eventually, rather than let you just read/write files. I haven't googled "lua+serialize" yet :-) -s]

*My final request is a harmless file transfer function, like for midis and bmps/jpgs. I'd like to give people an opportunity to choose some things besides their face to personalize their character. [definitely on the list for 'assets', a la empyrion -s]

Edit: Hah, I posted right after you. Anyway, I since realized that it doesn't do what I wanted it to and in fact I don't even need mod at the moment. Here's the way I'm gauging my max paints pers second at the moment:

code:
glStart=-1
glTick=0
-- We assume if global.Start is -1 that it's never been set,
-- since "most" systems don't use negative times. In fact none should anymore.
TA_OnTick( msec )
if ( glStart == -1 ) then
glStart = msec
glTick = msec
end
-- 15 in this next line represents your intended max paints per second.
-- In this toy it will be constant.
if ( msec - glTick >= 1000 / 15 ) then
-- draw stuff
glTick = msec
end
end

[yeah, something like that :-) I am going to add a TA_GetMsec() function since it might be nice in something like TA_OnPacket() or TA_OnMouse() to see how long it has been since some time or another, and I don't feel like adding a msec arg to every event handler :-) -s]

[ 08-12-2006, 05:29 PM: Message edited by: samsyn ]

--------------------
Who is Hotaru Tomoe?

Posts: 188 | From: Stratosphere | Registered: Sep 2005  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
BTW, through the years I have learned:

1.) initializing to -1 (as in your example) is generally not needed since I probably want it to fire the first time any way, so I can init to 0, and not bother to worry about the first case being any different from any other (and it is likely that msec is huge the first time I am called) Anyway, one less conditional check

2.) that it is better to add than subtract (you end up still working during rollover.. .well.. ok, I always used unsigned values for this purpose in C.

if( tick > (lastTick + delay )

as opposed to

if( (tick - lastTick) > delay )

or

if( (tick - delay) > lastTick )

I mean, they are all the same, but the first one seems to lead to fewer disasters in the long run. (and works accurately during rollover, when you're using unsigend values.. which I think lua does not have)

Plus you can pre-compute "lastTick+delay" and remember "nextTick" instead of "lastTick"

if( tick > nextTick )

and it reads nicely.

but they all work the same except for every 2 billion msec when they mess up. Actually, do they stay messed up for 2 billion msec? In the world of signed values, I imagine they do.

lastTick = -1000000000
nowTick = - 999999900 (100 msec since lastTick)
nextTick = last + 50 = -9999999950

if( nowTick > nextTick )

hmm, maybe it does work with signed values. how nice. Just breaks at the rollover

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
Maghnus
Healthy Member
Member # 6517

Member Rated:
4
Icon 1 posted      Profile for Maghnus   Author's Homepage   Email Maghnus   Send New Private Message       Edit/Delete Post 
You're thinking far too much about complexity for that late at night, but I'll keep the addition thing in mind. I can forsee isntances where it would be better, though I've never personally encountered a problem with using subtraction with known false value, like -1. I generally don't worry about complexity at all until it increases by at least a power using big O notation (usually nested loops). Or maybe I missed your point entirely. >.<

--------------------
Who is Hotaru Tomoe?

Posts: 188 | From: Stratosphere | Registered: Sep 2005  |  IP: Logged
abyaly
Healthy Member
Member # 4498

Icon 1 posted      Profile for abyaly   Author's Homepage         Edit/Delete Post 
TA hates me [Eek!]
Whenever I try to start a game with a deck I created, I get the following error:
"cannot load game script: cannot read F:\Arcadia\TOYS\toy10\assets\scripts\: No such file or directory"
Strangely enough, this continued when I made an -exact copy- of your test deck in notepad. When I enter the server and run test deck, it works fine. When I enter the server and run the copy, I get the same error.

If I go into the folder and copy/paste another test deck, this one also works fine.


*edit - if I alter this 'copy of test deck.ini' into other things, I can even get it to run my own scripts.

[ 06-28-2006, 08:52 AM: Message edited by: abyaly ]

--------------------
"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Posts: 152 | From: yesterday | Registered: Nov 2003  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
from your desciption I am not sure if the following makes sense to ask or not.

any chance your style included 'bad' characters.

that is, anything but a-z, 0-9, and space?

(note: allowing a space is a giant widening of my world view. but I still don't like punctuation in file names.)

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
abyaly
Healthy Member
Member # 4498

Icon 1 posted      Profile for abyaly   Author's Homepage         Edit/Delete Post 
The file "b.ini" contains the exact same text as "test deck.ini"
I don't think the problem is with the file name.. is there a minimum length?


*edit - after renaming "b.ini" into "the other test deck.ini" it works fine. I guess there is a minimum name length.

*more edit - OK. It seems one letter deck names do not work, but two letters is enough.

[ 06-28-2006, 02:27 PM: Message edited by: abyaly ]

--------------------
"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Posts: 152 | From: yesterday | Registered: Nov 2003  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
yes, I believe that is true.

Also, the script name must match the style name.

In the next release, I auto-create your script file for you (copying a blank one -- with just the event handler prototypes in it) to the right spot and naming it the same as the style.

And I added some buttons to auto-open your favorite editor (you tell windows what you want to open .script files with)

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
abyaly
Healthy Member
Member # 4498

Icon 1 posted      Profile for abyaly   Author's Homepage         Edit/Delete Post 
quote:
does it? I couldn't find % on lua.org
http://www.lua.org/manual/5.1/manual.html#2.5.1

--------------------
"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Posts: 152 | From: yesterday | Registered: Nov 2003  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
FWIW turnabout is using lua version 4.x but I recall they promise the language is the same :-) I will probably rebild on 5.1 eventually.. maybe whtn 8.3 comes out :-)

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
O.G.
Compulsive Member
Member # 5304

Member Rated:
3
Icon 1 posted      Profile for O.G.     Send New Private Message       Edit/Delete Post 
That soon???

--------------------
"The saddest aspect of life right now is that science gathers knowledge faster than society gathers wisdom"
O.G.

Posts: 4510 | From: Why would you want to know that? | Registered: Jun 2004  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
TurnAbout .0009 Release Notes
-----------------------------

I reworked the state machine a little so as to better handle client/server interactions. The major states are now:

PICK DECK

During this state, there is no script loaded on any player's machine, and everyone waits while the modersator chooses a deck. A new deck choice dialog appears in the moderator's face which cannot be closed until they make their choice.

JOIN GAME

As soon as the deck is selected, all players move to the JOIN GAME state. During this state each player checks if they already have the deck, and then fetch the deck, script, and any assets needed [no, haven't written that part yet, sorry, still need to pass assets and scripts manually for now]

As soon as a player finishes getting their assets, their copy of the script is loaded and they are given a JOIN GAME button. Since the script is loaded, it can immediately begin rendering to the screen (etc) so you can have a script-driven pre-game experience.

The moderator does not see a JOIN GAME button, but sees a START GAME button instead.


VARIOUS IN GAME STATES

Pressing START GAME advances all players to the in-game state. (actually a collection of mini-states to be documented later).

==========

New EVENTs

TA_OnStopGame( modSerNum, mySerNum)

Is called if the game is aborted by the moderator. The script is immediately unloaded as well, so all you should really do here is clean up any memory usage (like releasing all your image buffer handles)

TA_OnCanJoinGame( modSernum, mySerNum )

You return 1 (yes, let this player see a Join Game button) or 0 (no, hide the Join Game Button). This lets you postpone the join game button until something happens.. like after the moderator sets some initial conditions. Or maybe you plan to have your own join game button.

TA_OnCanStartGame( modSerNum, mySerNum )

You return 1 (yes, let the moderator see a start hame button) or 0 (no, hide the start game button). This lets you delay the start game button for some reason (like waiting for all players to report they have all assets, or until enough other players have joined, or maybe you want to render your own start game button)


TA_OnStateAnimationDone( stateNum )

The (new) TA_SetState( stateNum ) service lets you start a sub state (like rolling a die, or moving a gamepiece around the stonehenge board) and generally those invole a little animation (this assuming you are using stock rendering instead of your own). This event lets you know when the local PC has completed said 'animation'


------------

New Services

local msec = TA_GetMsec()

let's you get the current time, in msec, using the same units as in the TA_OnTick() handler. SO, for example, if you needed to know the time during some other handler, like TA_OnMouse(). You probably don't need it, but maybe you will, so now you can.

Remember though, msec = 0 is some unknowable moment in time and NOT the same moment on all player's PCs, so do NOT use this to schedule absolute events, just for measuring elapses time between two points.


TA_SetState( stateNum )

This lets you trigger some stock state choices. I will document these separately as they become available. For now, the stateNums you care about are:

0 - stop the game, now! (lua will be unloaded as a result and the moderator will be returned to the PICK DECK screen) (no TA_OnStateAnimatonDone will happen)

1 - do the same thing as when the local player presses the JOIN GAME button. Useful for if you are rendering your own button

2 - do the same thing as when the local moderator presses the start game button. Again, good for when you are drawing your own buttons.

----

Also.. um.. other stuff... i forget

* slightly smaller download

* buttons on options dialogs to open the current deck's style script (windows will ask you what program you want to use to open .script files -- pick your favorite text/code editor)

* when you create a new style card, it automatically creates a new script file for you (with the same name, under your serNum directory.. hmmm.. err... do I autocreate your sernum directory? I don't remember doing that... if not, you will have to do it yourself.. and it is your serNUm in hex, even if you have a GS, so I will have to fix that.

Anyway, it is just copying this file:

toy10/assets/scripts/00000001/blank.script

which I hope to keep up to date with the required event handlers, so it is something you should be able to manually copy and rename as needed to give your script a fresh start.

Well, someone tell me if it autocreates the folder for you or not.

[ 07-01-2006, 09:13 PM: Message edited by: samsyn ]

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
Flamelord
Compulsive Member
Member # 4491

Member Rated:
4
Icon 1 posted      Profile for Flamelord   Author's Homepage   Email Flamelord   Send New Private Message       Edit/Delete Post 
New state suggestion: 3, the "endgame" state. Useful for maybe showing the end statistics (Warpath's "You can stop clicking", etc.).

[this would actually be an entirely lua state, so turnabout doesn't need to know about it.. I think. turnabout would just think the game was still playing, but the script would know it was game over (because of packets the script sent) and display the high scores (or whatever) until the moderator clicked some lua-provided 'button' at which time the game would formally declare itself 'stopped' and the script would be killed and everyone would go back to pick deck until the moderator picked the deck again. That same lua game over screen could offer, for example, two buttons 'quit' and 'start new game' all without turnabout ever knowing a game finished. -s]

[ 07-02-2006, 12:02 PM: Message edited by: samsyn ]

--------------------
Constantinople! We shall never forget your zany barge poles!

Posts: 4232 | From: Gresham, OR | Registered: Nov 2003  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
so.. you can edit your lua scripts with any text editor (notepad, wordpad, etc.)

But if you're looking for something, you might give textPad a try. Google search it and after installing it, look for "lua.syn" (a textPad syntax file you drag into your textpad 'system' folder)

Then you can create (via the Configure menu) a new profile that tells textpad to use that .syn file when opening .script files.

Then you have lua syntax highlighting in the editor, and textPad is a pretty nice text editor to boot.

It will nag you every time you use it though, until you give them $30, which I think I will do right now.

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
Bloody Kione
Compulsive Member
Member # 5484

Member Rated:
3
Icon 1 posted      Profile for Bloody Kione   Author's Homepage   Email Bloody Kione   Send New Private Message       Edit/Delete Post 
I think I'll wait for TurnAbount Scripter...
Posts: 3450 | From: OVER THERE! LOOK OUT! | Registered: Jul 2004  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
TurnAbout .0010 Release Notes
-----------------------------

This is a cleanup release for the Contest, but it might actually be a step backwards in reliability since I had to change a LOT of stuff, in order to do something that sounds simple.

My ultimate goal was to re-do the directory structure so that eventually your games could use lots of assets and you could have organized subfolders as you saw fit, and a game could be distributed just by zipping up one folder.

I have to update the turnAboutAPI pages to reflect this, but here is how the directory structure works now:

assets/cards -- no change
assets/decks -- no change
assets/images -- gone
assets/scripts -- gone
assets/styles -- new

NEW ASSETS/STYLES FOLDER

Inside of assets/styles are individual sernum folders.

Inside of your sernum folder are individual folders for every style you make (going forward).

Inside of your style folder(s) are:

* styleScript (still styleName.script)
* decks folder
* anything else you want, with whatever subfolder hierarchy you need. MiniMud has an Images folder, but you can do whatever you like.

The decks folder is a new concept, it holds the COMPILED COPY of your deck.

assets/decks has the 'source copy' of your deck. Every time you make a change, it is recompile and the compiled version is stoed in assets/styles/sernum/stylename/decks. Compiled deck files have a .deck extension.

The PICK DECK dialog now recursively searchs assets/styles for all .deck files and that's what it shows in the combo box.

When you pick a compiled deck (as the moderator, setting up a game), it is copied to:

temp/game.deck

and other players are told about it. When they fetch a copy from you (if crc doesn't match what they already have), they not only store it in temp/game.deck, but they ALSO store a copy of the compiled deck in their own assets/styles/sernum/stylename/decks folder (under your senum and stylename). This allows them to play the game again in your absence. (but they do not have the 'source' for your deck, nor any of your 'cards') Only you have those (for now, at least). This is not a 'security' thing, by the way, though you are free to think of it that way.

Anyway, I hope I caught everywhere that needed to be changed to adapt to the new folder structure.

The TA_LoadImage() command (and ultimately any API command that uses a filename) has two forms of file name:

full path: assets/styles/00000001/monopoly/images/image1.bmp

relative: ./images/image1.bmp

relative mode starts at the style's personal folder and you indicate it by starting the file name with "./"

It is not a 'real' ./ by the way, I just copped the syntax.


(Note, if you install on top of your current copy, you will still have the old images and scripts folders, but they will be of no use to you)

HOW DO I UPDATE MY WORK IN PROGRESS?

1.) copy your script to a suitable folder for its new home:

assets/styles/sernum/styleName/styleName.script

2.) edit all your decks (add a card for example, you can immediately remove it. This will force a 'compilation' of the deck) Until you do that, your PICK DECK combo box will be empty.

BTW, pressing the [X] on the PICK DECK dialog causes it to reload the choices (which is nice if you recompile them while it is open)

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
abyaly
Healthy Member
Member # 4498

Icon 1 posted      Profile for abyaly   Author's Homepage         Edit/Delete Post 
So if we want people to be able to build their own decks, the script has to be distributed uncompiled, right? Is there (or will there be) a way to do this within turnabout?

--------------------
"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Posts: 152 | From: yesterday | Registered: Nov 2003  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
I promise I will add auto-sharing of script files soon... asset files sometime after that.

For the purposes of the contest, I will put ALL the (working) submissions in a release so the voters will have access to everything without hassle.

But for manually sharing with your friends, you should manually send them your assets/styles/sernum folder (or individual assets/styles/sernum/stylename folders)

--------

Oh, sorry, you said "want people to be able to make their own decks [for someone else's style]"

Yeah, sorry, that's going to be a little problematic right now. (Hole in the Design) since the deck editot wants access to all the cards of the style. While I could make my own cards for your style, the problem right now is that I lack your base style card. And frankly, I'm not sure how strong the code is at the moment wrt dealing with cards from multiple sernums.

So for right now, pretty much the cards and deck need to be made by the style developer. Others can then PLAY a given deck, once they have fetched the stylename folder from someone with a copy.

I imagine even more turbulence in the future wrt the directory structure as the various needs battle for dominance.

[ 07-16-2006, 01:20 PM: Message edited by: samsyn ]

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
TurnAbout 0011 release notes
----------------------------

Mainly this cleans out some old crap assets (like 'test 4 and test 6') but it adds a new playable minigame

"Feud"

 -

At present, Feud is pretty basic, but looking at the script might be informative. It's mostly clearly written, but has begun it's slippery slide into the world of quick and dirty hackery.

Basically, you try to blow the ground out from under your enemy's pieces until they fall into the water and disappear.

Last one with any pieces left, wins.

When it is your turn (one of your pieces will be selected automatically), use the arrow keys to adjust the angle and power of your 'cannon' then click in the circle to fire.

And that's about it. Only one weapon, can't move your pieces, etc. Lots of potential for improvement, but it is a game by definition, since it is possible to lose :-)

[ 09-02-2006, 06:49 PM: Message edited by: samsyn ]

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
TurnAbout .0012 Release Notes [REQUIRES arcadia A52]
-----------------------------

This adds support for two new API functions:

TA_PlayWAV( "./sfx/mysoundeffect.wav" )

and

TA_PlayMIDI( "./midi/mymidifile.mid" )

Filename rules are the same as those for TA_LoadImage(). If you start with "./" then the file is assumed to be somewhere inside your style folder:

assets/styles/yoursernum/yourstylename

NO, it won't play MP3s. [Smile]

See the feud updates for usage examples. Watch out for mistakes like playing the file inside of TA_OnTick() without adequate protection against playing it over and over every tick.

Feud has a tiny bit more 'polish' in this release (clear game over)

====

OOOOOPS...

If you fetched the new turnabout before 5:45pm california time, please fetch it again. I included the new feud, but forgot the new turnabout!

Symptom is that when you play feud you see a red error message regarding TA_PlayWAV

[ 07-30-2006, 05:39 PM: Message edited by: samsyn ]

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
TurnAbout Releases 13, 14
-------------------------

Miscellaneous Feud Enhancements.

Note: if a player leaves, the design goal is to leave their pieces behind but 'skip their turn' (i.e. they become just targets to be blown up)

You might think that means the original player could return, but it turns out they can;t

Likewise, spectators were being left in the dark, so I added a little 'turntable of players' to watch while you wait.

It also shows that pre-game

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
Flamelord
Compulsive Member
Member # 4491

Member Rated:
4
Icon 1 posted      Profile for Flamelord   Author's Homepage   Email Flamelord   Send New Private Message       Edit/Delete Post 
Suggested fued enhancement/API enhancement: Pressing spacebar fires the cannon. This would only happen when a player had clicked into the play area of the window. [Smile]

--------------------
Constantinople! We shall never forget your zany barge poles!

Posts: 4232 | From: Gresham, OR | Registered: Nov 2003  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
Know Bugs (but I have no time to fix yet)

* Lag Trix

If you have laggy connection to moderator, you can fire multiple shots. Please avoid doing that. If nothing seems to happen when you click to fire your cannon, please just wait. (Yeah, right [Smile] )

* Play-Order issue. I thought I had done something really clever to guarantee the ordering I wanted, but actually it was just stupid, so when you have more than 2 players, the play order is a little chaotic

* My code to recover from somone leaving the game depends on their staying gone. If they return before the moderator has seen them 'disappear' the game will still get stuck on their turn, even though there is no way for them to resume the game when they re-enter.

* I really need to add a max timeout for placing your move (if only to have an absolute recovery from the above) and use my annoying little buzzer if you don't seem to be making your move promptly.

---

But I actually had quite a good time playing this with you guys this evening. Bodes well.

Heavy work week ahead, so these bugs will probably remain until next weekend.

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
0014 release
------------

A quicky that fixes:

* no more multi-shot

* no more completely-skipped turns

It is still not the ideal next-piece-picker since it won't guarantee that each of your pieces gets a turn, just that YOU always get a turn.

I will eventually gix it right, when I have time.

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
Hesacon
Obsessive Member
Member # 3724

Member Rated:
4
Icon 1 posted      Profile for Hesacon   Author's Homepage   Email Hesacon   Send New Private Message       Edit/Delete Post 
Will there be any way to store information like the cookies do in WoS? That way, they can stop a deck, come back to it, and have something preserved, whether that be chips in blackjack or lives/levels unlocked in "super platformer game?"

[yes, there will be something for nonvolatile and semi-secure per-account per-style data storage. I'm just not sure what it will be yet [Smile] -s]

Also, will you be adding a /stepper command for TurnAbout scripts?

[this is actually pretty unlikely -s]

[edit: by the way, this link 404s on the turnabout API page.]

[ 08-10-2006, 07:07 PM: Message edited by: samsyn ]

--------------------
SoV: Exalted Devout Oracle | World Developer | The Black Guard
Outside is just a prank older kids tell younger kids at Internet Camp

Posts: 9479 | From: NY | Registered: Apr 2003  |  IP: Logged
O.G.
Compulsive Member
Member # 5304

Member Rated:
3
Icon 1 posted      Profile for O.G.     Send New Private Message       Edit/Delete Post 
Why would he make a link to "http://www.synthetic-reality.com/www.lua.org/pil"??? [Confused]

[EDIT]And I once made a topic about another link error in his site and he still hasn't fixed it... [Frown] [Frown]

[Which link is that? -s]

[ 08-10-2006, 07:03 PM: Message edited by: samsyn ]

--------------------
"The saddest aspect of life right now is that science gathers knowledge faster than society gathers wisdom"
O.G.

Posts: 4510 | From: Why would you want to know that? | Registered: Jun 2004  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
I blame Microsoft FrontPage!

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
O.G.
Compulsive Member
Member # 5304

Member Rated:
3
Icon 1 posted      Profile for O.G.     Send New Private Message       Edit/Delete Post 
The link is in the Well Of Souls Guild Info, under "Guild Page Image Copyright Policies".
The link to http://www.ozones.com actually redirects you to http://www.ozone.com.

[ha, you are so WRONG! I *did* fix that link, and right promptly! I just didn't push the page since I didn't feel like pushing it for such a small change... but no bigger changes came around.. -s]

[ 08-12-2006, 02:24 AM: Message edited by: samsyn ]

--------------------
"The saddest aspect of life right now is that science gathers knowledge faster than society gathers wisdom"
O.G.

Posts: 4510 | From: Why would you want to know that? | Registered: Jun 2004  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
Release 0016
------------

Includes new API functions (API documents updated)

* TA_StockCardsInfo()
* TA_DrawStockCard()
* TA_StockDeckShuffle()
* TA_StockDeckPeek()
* TA_StockDeckTake()
* TA_Polygon()

http://www.synthetic-reality.com/turnAboutAPI.htm#Playing+Card+Support

and a new event

* TA_OnPlayer()

And new mini-game: TurnAbout Blackjack

 -

I look forward to hearing if you can figure out how to play blackjack. I didn't really get to try it out multiplayer. Unfortunately, while it is designed for drop-in play, latecomers to the game right now won't see it start unless the moderator restarts the deck. That's a bug. Or an unfinished work.. or something.

[ 09-02-2006, 06:41 PM: Message edited by: samsyn ]

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
O.G.
Compulsive Member
Member # 5304

Member Rated:
3
Icon 1 posted      Profile for O.G.     Send New Private Message       Edit/Delete Post 
Yeah, right... [Roll Eyes]

--------------------
"The saddest aspect of life right now is that science gathers knowledge faster than society gathers wisdom"
O.G.

Posts: 4510 | From: Why would you want to know that? | Registered: Jun 2004  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
TurnAbout 0017 Release Notes
----------------------------

Small bug fixes and completion of multiplayer mode for TurnAbout Blackjack

So... if you enter the server while play is in progress, you will now see the black screen for about 20 seconds, then get synced to the game in play (with you able to take part in the next round)

Likewise, an afk player will force everyone to wait, but the player will then be marked as 'asleep' and will not interrupt play further.

A little random scatter behind the current player's head is your indication of whose turn it is.

You can now have more chips on the table (enough to partially cover the lower seats on tinier windows, but that's your choice. I didn't want to optimize for 640x480 this time.

But the max individual bet is $2000

I am pretty sure the dynamic range between min and max bet sizes is an important game factor. Too large of a max bet and it just becomes a game of doubling your bet each time you lose, plus people have to wait while you stack up a million chips, then everyone crashes, etc.

You need to be able to double your bet a bit (10 or 11 times as it stands now), but have it really hurt without chance of reprise when you play that way.

Speakign of which, you get a new credit card every time you play. The obvious thing to do is make that non-volatile, but I am pretty sure the reaction to that will just be everyone being in debt, losing heart, and then playing the "I want to see how deeply into debt I can get" rather than "I will patiently slog my way back out" so while non-volatile debt is a LOGICAL thing to add, I am not convinced it is a FUN thing to add.

I think I might like it better as a per session thing, where you use your credit balance at the end of the session as an overall feeling of how you did that session. I can track your total wins (ok, losses) elsewhere (someday), but it probably needs some sort of metagame like "first to make $10K" or whatever to juice up the competitive elements.

My wife suggested you earn items (bling) for playing well.

And I thought it might be interesting to track the casino's winnings/losses.

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
OK,

In the next release I have support for non-volatile string storage.. in.. "Bags"

Bags are sort of like INI file in the sense that you save information like:

"numAcorns" = "34"

Your game can provide as many bags as it likes. Maybe one bag for the user's preferences, one for their trophies, etc. Or all in one bag. Or no bags at all.

A bag is, in fact, a file. And the word 'bag' need never be seen by the end user. But it was more fun to call them bags than files.

Each style of mini-game has its own bags (feud bags are different from blackjack bags), and each account on your PC has his own bags for each mini game (samsyn's monopoly bags are different from Cheeta's monopoly bags), and your mini game can define more than one bag.

So -- lots of bags.

http://www.synthetic-reality.com/turnAboutAPI.htm#Bags%20-%20Storage%20Support

=====

Note: I have NOT pushed bags yet.. they will be in next release, along with a change to Blackjack to use them.

Speaking of that, my plans are:

1.) Blackjack is a nice little multiplayer casino now.

2.) now to add the 'rpg elements' !

I was thinking of adding a credit limit, that starts at, say $100.

As you win bets, you earn experience points (high roller points) which result in your credit limit being raised.

Your credit limit controls how much you can borrow.. for when you run out of chips. If you run out of chips AND your credit limit is maxxed out then.. well.. in RPG terms, you're dead.

I'm not quite sure how to bring you back to life (short of a close credit account button which wipes your debt.. 'declare bankruptcy' but leaves you with some damage to your 'credit rating')

I could also do goofy things like "while dead, you can continue to play, betting no more than $5 a hand, but you don't get to see either of the dealer's cards until after you stay."

Anyway...

[ 08-20-2006, 06:32 PM: Message edited by: samsyn ]

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
TurnAbout 0018 Release Notes
----------------------------

One feature of the following (player info columns) requires a new Arcadia release for its full glory to be realized, so expect it to be defective until then)

* New APIs (documenting them as soon as I post here)

- Bags (non-volatile storage)
- Player List Menus
- Player List Columns
- Player List clicks

* Existing Scripts augmented for new events (you will want to add handlers to your own, see 00000001/Blank for examples)

* Blackjack

- wacky table cloth
- permanent credit rating
- Player Info column
- Player right-click Menu

=== New API functions by name:

TA_SetBagValue( bagName, keyName, value )

value = TA_GetBagValue( bagName, keyName )

count = TA_NumBagItems( bagName )

count = TA_NumBagItems( bagName, keyName )

key, value = TA_GetNthBagItem( n, bagName )

key, value = TA_GetNthBagItem( n, bagName, keyName)

count = TA_DeleteBagItems( bagName )

count = TA_DeleteBadItems( bagName, keyName )

TA_UpdatePlayerInfo( serNum )

New EVENTS:

label, width, text, color = TA_OnPlayerInfoNeeded( column, serNum )

text, checked, dimmed = TA_OnPlayerMenu( slot, serNum, name )

valid = TA_DoPlayerMenu( slot, serNum, name )

[ 08-20-2006, 06:41 PM: Message edited by: samsyn ]

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
TurnAbout API updated

http://www.synthetic-reality.com/turnAboutAPI.htm

--------------------
He knows when you are sleeping.

Posts: 10599 | From: California | Registered: Dec 1998  |  IP: Logged
  This topic comprises 3 pages: 1  2  3   

Quick Reply
Message:

HTML is not enabled.
UBB Code™ is enabled.

Instant Graemlins
   


Post New Topic  New Poll  Post A Reply Close Topic   Unfeature Topic   Move Topic   Delete Topic next oldest topic   next newest topic
 - Printer-friendly view of this topic
Hop To:


Contact Us | Synthetic Reality

Copyright 2003 (c) Synthetic Reality Co.

Powered by UBB.classic™ 6.7.3