News:

Introducing VSV = Versatile Separated Values. Simple, elegant format usable for lists, tables, object notation, subtitles, playlists.

Main Menu

Recent posts

#1
Games General / Re: TetraShmup / Ominos
Last post by Den - 2023-Jan-19 01:22
After playing a thousand times, I feel zen, especially at late game. When the pace rises at breakneck speed, enemies and bullets fly at you at imperceptible quickness and you try to dodge everything. All the while the screen is cluttered with your own attacks. Yet I'm at peace despite the hectic visual bombardment. Surviving happens by itself, simply by non directed attacks and motion.
#2
Games General / Re: TetraShmup / Ominos
Last post by Den - 2023-Jan-06 03:18
#3
Games General / TetraShmup / Ominos
Last post by Den - 2023-Jan-04 07:10
Ominos = a TetraShmup

Shooter where you, the player, are a tetromino (Tetris piece). Shoots differently based on shape, color, and orientation.

Play Ominos
ActionURL
 play  https://forrsiis.itch.io/ominos
 play  https://tetrashmup.amuseum.repl.co
 play  https://ieants.cc/html5/ominos/
 watch demo  https://youtube.com/video/DVhOveCRXTQ
 hosted  https://replit.com/@Amuseum/TetraShmup
 hosted  https://github.com/ForrSiis/Ominos


[[Design Notes]]

OFFENSE
ColorTypeEmissionImpactLevelingDamage
 red  round pellets  shoots out from each cell  vanishes after hit  bigger radius and more damage  early game low, late game veryhigh
 cyan  laser beams  shoots ahead and behind  passes thru enemies  more beams  low
 yellow  exploding missile  miniature clones of player  after hit, all missiles explode, into AOE  bomb bigger radius and longer duration  missile medium, bomb veryhigh
 magenta  energy field  pulsing energy around player  hits everything inside field  bigger radius  very high
 green  bouncy balls  reflects off edge of screen  vanishes after duration  longer duration  low
 white  falling pieces  ominos fly from edges of screen toward player's position  vanishes after hit or duration  more pieces  early game veryhigh, late game low
 brown  seeker arrows  finds and follows the nearest enemy  vanishes after hit or duration  more seekers  low
 black  sticky fidget  spins out from each cell  sticks to enemy, vanishes after duration  more stickys and faster damage over time  on collision and per second after sticking, low
 silver  satellite yoyos  miniature clones of player circles around player  absorbs enemy attacks  bigger radius  high
 blue  forked lightning  shoots from each cell at 90 degrees  forks after hitting enemy  more forks and more times  low
 olive  poison cloud  spreads out from cells a short distance  stays on field a short duration  bigger radius and longer duration  low


((Power ups))

= eat spinning Plus omino = gain 100 points = regain shield = change shape and color = faster movement speed

= alter shape and color = eat Plus ominos

= player level = per 1000 points

= player level = faster shoot rate = more powerful attacks

= faster movement speed = eat Plus ominos

= shield = decrease when hit by enemies and their attacks = die when 0 = eat Plus ominos to regain shield



((Controls))

= move ULDR = OIEA = DXCV

= rotate = S T = , .

= rotate = player piece = 22.5 degrees = 1/16 of a circle

= autofire = on

= gamepad = d-pad = buttons rotate and start game


((Environment))

= obstacles = rotate piece may help pass thru obstacles
#4
Games General / Re: KARA 5 KANVAS
Last post by Den - 2023-Jan-02 01:16
Slots machine design

See attached PDF on how to design a slot machine. Includes calculations on hits, lines, scatters, wilds, probabilities, winnings, RTP, etc.

See attached spreadsheet for KARA 5 Slots calculations. The target RTP is just above and as close to 1.0 as possible.

Slots code inspired by Karma-Slots.
#5
Magic: the Gathering / Re: Card Search Page and API
Last post by Den - 2023-Jan-01 18:45
Scryer: fixed to work with Opera Presto
#6
Programming / Re: Versatile Separated Values...
Last post by Den - 2023-Jan-01 07:50
To interface with SQL is dependent on the server-side language (e.g. PHP, Ruby, etc.). The VSV library for each language should have a method to simplify import and export between SQL and VSV.

Ex.
VSV.importFromSql(sqlLink, sqlDb, sqlTables) {
  // query from SQL server into array
  // then pass array to other VSV mapTo functions
  return vsvObject;
}


Alternatively, could attempt to export from database to CSV. However, behoove to use unique options that would nearly eliminate the chances of collision. Nevertheless, this method is prone to end-user errors (e.g. user neglect to use safe options, or options are not even available to begin with), more tedious, more steps involved.

Another problem with this method is that there could be no standardized or perfect set of options. This is up to personal preference, out of the control of the VSV library.

Fortunately some languages do have built-in methods to convert CSV into arrays. Nevertheless, it still requires user knowledge, such as the delimiter. Yet the integrity of the data can't be guaranteed when parsing CSV, if such knowledge is missing.

On the contrary, with VSV, the library doesn't need extraneous information by the user. When properly written, the import and export of VSV would always produce unambiguous, safe text that preserves integrity of the data. All without mandating user interference or testing their fickle memory.
#7
Numbers and Time in Heros Born

Heros Born takes place in the future, around the year 2222 AE. They use a base plen number system, that is our base twelve, or "ten plus two". Also note 10 = plen.

Basic numbers
DigitalLiteral
 0  zero
 1  one
 2  two
 3  three
 4  four
 5  five
 6  six
 7  seven
 8  eight
 9  nine
 T  ten
 E  eless
 10  plen
 11  oneple
 12  twople
 13  threeple
 14  fourple
 15  fiveple
 16  sixple
 17  sevenple
 18  eightple
 19  nineple
 1T  tenple
 1E  elessple
 20  twopy
 21  twopy one
 30  threepy
 40  fourpy
 ...
 ET  elesspy ten
 EE  elesspy eless


Powers of plen:
LiteralPowerDigital
 one  10^0  1
 plen  10^1  10
 gross  10^2  100
 myrre  10^3  1,000
 myrriad  10^4  10,000
 plen myrriad  10^5  100,000
 myrrion  10^6  1,000,000
 plen myrrion  10^7  10,000,000
 gross myrrion  10^8  100,000,000
 byrrion  10^9  1,000,000,000
 tryrrion  10^10  1,000,000,000,000
 quadryrrion  10^13  1,000,000,000,000,000
 ...


Powers of plen, prefixes
LiteralPower
 -  10^0
 plena-  10^1
 grossa-  10^2
 kyla-  10^3
 myga  10^6
 gyga-  10^9
 tyra-  10^10
 ...


Negative powers of plen, prefixes
LiteralPower
 uncy-  10^-1
 duncy-  10^-2
 myrry-  10^-3
 nany-  10^-6
 ...


Time
Part of dayOur equivalent
 day  day
 sheik  2 hours
 karaf  10 minutes
 fenet  50 seconds
 tick  4.16~ seconds
 count  0.346~ seconds
#8
Programming / Re: Versatile Separated Values...
Last post by Den - 2022-Dec-27 04:02
Can VSV be formatted as an efficient database?

Compare JSON (or XML, yuck) is sometimes used in proxy of a lightweight, dynamic database. In this regard, VON can also emulate JSON or XML. The disadvantages of these formats is, they don't look aesthetically like a database. Modifying and appending them manually would be tedious.

Suppose we want something more tabular, with grids, columns, and rows. VSV can already provide that functionality. In fact, tables were part of the original purpose behind how VSV was designed. VSV has header and data rows, just like tables do.

Ex. database of RPG mobs as a table
((Id)) ((Name)) ((Mind)) ((Body)) ((Soul))
;1;Warmech;10;12;9

Another way to view a database is as a list of definitions, or a dictionary. Each item consists of many data rows. Such that each data row has two or more fields. Where the first field of a row is the parameter, and all subsequent fields of that row are values associated with that parameter.

Ex. database of RPG mobs as a dictionary
[[1]]
,name,Warmech
,mind,10
,body,12
,soul,9

Here a header row signifies the beginning of an item. Its id is written inside the brackets.

In this case, you may be better off using VON for a simpler, direct conversion to an object or array in a given programming language.

Ex. in VON
[Monsters
{1
,name,Warmech
,mind,10
,body,12
,soul,9
}
]

Here we declare an array called Monsters. It consists of objects. These objects have rows that define keys and their corresponding values.

For third-party modding, VON is preferable to tables.

Exporting and Importing

So we have at least three different ways to use VSV / VON as a database file. We also need ways to signify which method is actually used in a given file. Solution is simply to lead the file with a signature.

Ex.
[[VSV]] [[table]]

[[VSV]] [[dict]]

[[VON]]

Note that when a VSV/VON file that leads with [[VSV]] or [[VON]], this row is not part of the header or data to the rest of the file. However they are read as a header row, due to opening with double square brackets. As such, algorithms can still process the values held between the brackets.

In this case, the second field in this signature row can further declare additional types or instructions to the algorithm importing this file.

Discuss how to convert to and from other database applications or paradigms. For example, use LibreOffice Calc or phpMyAdmin to design and populate a database. Then export the data to VSV/VON, which is then imported into other applications, such as a game.

For prototyping, can first output from the other databases into CSV, then convert into VSV with mere touch-up. The first row is assumed to be a header row; so wrap each field with double brackets. The remaining rows are data rows that need to be prepended with delimiter. The drawback with CSV is only one type of delimiter is allowed. Unfortunately, not checking for delimiter-value collision may lead to corrupted data. Ideally, a proper algorithm will have a set of delimiters, and chooses one that avoids collision.

Attached are two Python macro script files for LibreOffice. The "vsv.py" is a library that should go into the pythonpath subfolder. The "vsvTable.py" provides two functions for the user to run: importVsv and exportVsv.

ExportVsv converts a Calc spreadsheet into VSV table. Only the current sheet is exported. Into the same directory as the active document; or into the user's default working directory if the sheet is not yet saved.

ImportVsv opens a dialog to select one or more VSV files. For each file selected, it searches for a sheet with a name matching the filename. If not, it creates a new sheet with that name. Then populates the sheet with the data from the VSV file. Header rows will also apply the "Header 2" style.

It would behoove to set these two functions as keyboard shortcuts.
#9
Games General / Re: KARA 5 KANVAS
Last post by Den - 2022-Dec-14 22:41
KARA 5 Tiles boards are defined in VON files. See attached for example.

Ex.
{
   {board
      =id=1
      =name=KARA
      =gridW=24
      =gridH=10
      =gridT=1
      =cellW=50
      =cellH=50
      =tileW=2
      =tileH=2
      =tpi=2

   }
   [tiles
      ((((((((((((((( tier 0
      (( K
      [,0,0,0]
      [,0,2,0]
      [,0,4,0]
      [,0,6,0]
      [,0,8,0]

      [,2,2,0]
      [,2,6,0]

      [,4,0,0]
      [,4,8,0]

      (( A
      [,6,2,0]
      [,6,4,0]
      [,6,6,0]
      [,6,8,0]

      [,8,0,0]
      [,8,4,0]

      [,10,2,0]
      [,10,4,0]
      [,10,6,0]
      [,10,8,0]

      (( R
      [,12,0,0]
      [,12,2,0]
      [,12,4,0]
      [,12,6,0]
      [,12,8,0]

      [,14,0,0]
      [,14,4,0]
      [,14,6,0]

      [,16,0,0]
      [,16,2,0]
      [,16,8,0]

      (( A
      [,18,2,0]
      [,18,4,0]
      [,18,6,0]
      [,18,8,0]

      [,20,0,0]
      [,20,4,0]

      [,22,2,0]
      [,22,4,0]
      [,22,6,0]
      [,22,8,0]

      ((((((((((((((( tier 1
      (( K
      [,0,0,1]
      [,0,2,1]
      [,0,4,1]
      [,0,6,1]
      [,0,8,1]

      [,2,2,1]
      [,2,6,1]

      [,4,0,1]
      [,4,8,1]

      (( A
      [,6,2,1]
      [,6,4,1]
      [,6,6,1]
      [,6,8,1]

      [,8,0,1]
      [,8,4,1]

      [,10,2,1]
      [,10,4,1]
      [,10,6,1]
      [,10,8,1]

      (( R
      [,12,0,1]
      [,12,2,1]
      [,12,4,1]
      [,12,6,1]
      [,12,8,1]

      [,14,0,1]
      [,14,4,1]
      [,14,6,1]

      [,16,0,1]
      [,16,2,1]
      [,16,8,1]

      (( A
      [,18,2,1]
      [,18,4,1]
      [,18,6,1]
      [,18,8,1]

      [,20,0,1]
      [,20,4,1]

      [,22,2,1]
      [,22,4,1]
      [,22,6,1]
      [,22,8,1]

   ]
}
#10
Games General / KARA 5 KANVAS
Last post by Den - 2022-Nov-26 13:46
Just trying some simple HTML Canvas stuff. You can admire KARA princesses at this URL:

https://ieants.cc/u/kanvas

Many of these games use my specially created deck of cards hugely inspired by KARA5. Has 5 suits and 12 ranks, using KARA5 idols as suits.

ActivityDescription
 KARA 5 ClockA clock using base twelve numeral system.
 KARA SlideshowBackground and icons rotate every few seconds.
 KARA 5 Poker5-card draw using KARA5 deck.
 Concentrate on KARAMatch all the pairs of icons in the shortest time.
 KARA 5 Krushmatch 3.
 KARA 5 SlotsSlots with 5 rows and 5 columns. Win all ways.
 KARA 5 Tilesremove matching tiles at edges.
 KARA-TRISlike Tetris.
 kobARAKlike Snake.
 KARA 5 SliderSlide tiles to complete picture.
 KARA 5 Green Queenlike Black Jack. Get close to 25, but not over. Uses KARA5 deck.
 KARA 5 Lupinlike Euchre / Bridge. Uses KARA5 deck.
 KartelBig 2 meets Elements. Uses KARA5 deck.
 KARA 5 ElementsSolitaire using KARA5 deck.
 Karot ReadingFortune telling. Uses KARA5 and MBS decks combined.
 Idol Battle"Fight" between KARA and Family Outing cast.



(Project started circa April 2011.)