Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Making your game general

Name: Anonymous 2018-08-08 9:11

ITT we discuss how to collaboratively design our games.

Name: Anonymous 2020-04-16 15:14

Resident evil should have this gaming version for us to play!
http://freeporngames.biz/games/098

Name: Anonymous 2020-04-16 16:05

>>518
What happened to your game?

Name: !Ps1ivhrO6w 2020-04-20 21:23

>>522
It got sidetracked by human kinematics.

Name: Anonymous 2020-04-20 21:28

>>523
That is now how one makes a game. First make a clear design document. Then break it into an implementation plan for a prototype. Write the prototype. Modify the prototype. Turn the prototype into the actual game.

Complex stuff like kinematics would require using premade solution, and force you to use something like Unity, which integrates such stuff using common interface.

Name: !Ps1ivhrO6w 2020-04-20 22:47

>>524
You are right about your first paragraph, thanks.

I would never use premade solution, which doesn't expand my knowledge at all, can't be modified, and can be taken away at a glance.

Direct kinematics, which I'm looking at first, is not as complex as you would imagine; studying it also increases my knowledge and enables me to program things I might have never thought about before.

But you are right on the need for organization, and the schema you provided is applicable.

Name: Anonymous 2020-04-20 22:55

I make my gay

Name: Anonymous 2020-04-21 3:38

Finally implemented the world map save/load. For example the save game for the https://imgur.com/a/MWDLDlo map would look like https://pastebin.com/ppFerZWH

Yeah it is a bit lispy and uses Symta's read/print to parse the save. Still needs some formatting to look nicer since Symta supports less cluttered syntax inside the Lisp-one.

Name: Anonymous 2020-04-21 4:00

>>527
Actual save/load code
PlayerSerFields = list serial index name human gold debt color_name alt_color

CellSerFields = list x y biome type seed

UnitSerFields = list serial site type hp_loss flags hired used demand slot

SiteSerFields = list serial seed owner gold flags quest_context
turn cell ap ap_max

QuestSerFields = list serial seed type turn owner src dst reward flags

ItemSerFields = list serial type owner count slot flags quest renamed
color

WorldSerFields = list root_seed seed turn turn_seed player neutral human
nil picked serial quest_serial unit_serial cycle

item.ser =
| GT = getters_ Me
| Fs = map F ItemSerFields:
| V = (GT.F){Me}
| when V.is_wsite: V <= s,V.serial
| when V.is_wplayer: V <= p,V.index
| when V.is_wunit: V <= u,V.serial
| V
| Fs

wquest.ser =
| GT = getters_ Me
| Fs = map F QuestSerFields:
| V = (GT.F){Me}
| when V.is_wsite: V <= s,V.serial
| when V.is_wplayer: V <= p,V.index
| V
| Fs

wsite.ser =
| GT = $getter
| Fs = map F SiteSerFields:
| V = (GT.F){Me}
| when V.is_wcell: V <= c,V.x,V.y
| when V.is_wquest: V <= q,V.serial
| when V.is_wplayer: V <= p,V.index
| V
| $class.type,$data.unheap.list,Fs

wunit.ser =
| GT = getters_ Me
| Fs = map F UnitSerFields:
| V = (GT.F){Me}
| when V.is_wsite: V <= s,V.serial
| V
| $data.unheap.list,Fs

wcell.ser =
| when $void: leave 0
| GT = $getter
| map F CellSerFields:
| V = (GT.F){Me}
| when V.is_wsite: V <= s,V.serial
| V

wplayer.ser =
| GT = $getter
| map F PlayerSerFields: (GT.F){Me}

world.ser =
| GT = $getter
| for F WorldSerFields:
| V = (GT.F){Me}
| when V.is_wplayer: V <= p,V.index
| when V.is_wsite: V <= s,V.serial
| $data.F <= V
| list version("0.1")
data | $data.list
cells | $cells{}{?ser}.skip{0}
players | $players.list{}{?ser}
units | $units.list{}{?ser}
sites | $sites.list{}{?ser}
items | $witems.list{}{?ser}
quests | $quests.list{}{?ser}

world.save File =
| say "Saving to [File]"
| "[File].txt".set{$ser.as_text}
//| $bg.save{"[File].png"}

SiteLUT =
UnitLUT =
QuestLUT =

wplayer.unser Ser =
| ST = $setter
| map F,V zip{PlayerSerFields Ser}: (ST.F){Me V}
| $color <= $color_name
| Me

wsite.unser Ser =
| $class <= $world.classes.(Ser.0)
| $data <= Ser.1.enheap
| ST = $setter
| map F,V zip{SiteSerFields Ser.2}: (ST.F){Me $world.unsref{V}}
| SiteLUT.($serial) <= Me
| $place{$cell}
| Me

wcell.unser Ser =
| ST = $setter
| map F,V zip{CellSerFields Ser}: (ST.F){Me $world.unsref{V}}
| Me

wunit.unser Ser =
| $data <= Ser.0.enheap
| ST = setters_ Me
| map F,V zip{UnitSerFields Ser.1}: (ST.F){Me $world.unsref{V}}
| UnitLUT.($serial) <= Me
| Act = $world.main.acts.$type
| when no Act: bad "wunit.unser: no act associated with [$type]"
| $act <= Act
| $class <= $world.main.classes.$type
| Me

wquest.unser Ser =
| ST = $setter
| map F,V zip{QuestSerFields Ser}: (ST.F){Me $world.unsref{V}}
| QuestLUT.$serial <= Me
| Me

item.unser Ser =
| ST = $setter
| map F,V zip{ItemSerFields Ser}: (ST.F){Me $world.unsref{V}}
| $class <= $main.classes.$type
| $base <= $class.item
| $owner.equip{Me}
| Me

world.unsref Item = //unserialize unsref
| case Item
[c X Y] | $cellsMap.Y.X
[s Serial] | SiteLUT.Serial
[q Serial] | QuestLUT.Serial^~{Item}
[p Index] | $players.Index
[u Serial] | UnitLUT.Serial
Else | Item

world.regenerate_bg Seed =
| $clear
| $root_seed <= Seed
| rand_push $root_seed
| $seed <= rand_get
| $create_island{$bg} //regenerate background image
| $clear
| rand_pop

world.load File =
| say "Loading from [File]"
//| $bg.load{"[File].png"}
| SiteLUT <= t
| UnitLUT <= t
| QuestLUT <= t
| Save = $main.load_save_file{"[File].txt"}
| Data = Save.data.table
| $regenerate_bg{Data.root_seed}
| for C Save.cells: $cellsMap.(C.1).(C.0).unser{C}
| for Ser Save.players: $players_pool.alloc.unser{Ser}
| for Ser Save.sites: $sites.alloc.unser{Ser}
| for Ser Save.units: $units.alloc.unser{Ser}
| for Ser Save.quests: $quests.alloc.unser{Ser}
| for Ser Save.items: $witems.alloc.unser{Ser}
| for S $sites: when S.quest_context: //backpatch it
| S.quest_context <= $unsref{S.quest_context}
| ST = $setter
| for F WorldSerFields:
| V = Data.F
| (ST.F){Me $unsref{V}}
| Data.F <= No
| for K,V Data.list: when got V: $data.K <= V
//| say $players{}{?index,?name,?serial}
| SiteLUT <= No
| UnitLUT <= No
| QuestLUT <= No

Name: Anonymous 2020-04-21 4:05

>>528

Ideally stuff like PlayerSerFields should be marked at the time type field gets declared. I think a more general out of the box serialization system wont hurt. Then there could be pre-generated setter list ready for the serializer.

Name: !Ps1ivhrO6w 2020-04-23 10:39

>>520
I like the language, though the implementations are deficitary...
I might reimplement parts of it into a hash-table oriented language,
For I love sets in math, and hash tables are their most approximate implementation.

Name: Anonymous 2020-04-26 23:02

At last spent some time writing music (instead of placeholders) starting with a proper game over theme:
https://soundcloud.com/nash_gold/spell-of-mastery-game-over-theme

Sorry for the ducks - they are for watermarking purposes, since some people are known to steal and reuse random stuff from soundcloud without giving credit.

I'm not really a musician, so I will keep it minimalistic and mostly ambient. I.e. most tracks will actually be duck tracks.

Name: Anonymous 2020-04-28 3:12

>>531
Please make additional duck tracks

Name: Anonymous 2020-04-28 3:17

Are duck tracks touring complete?

Name: Anonymous 2020-04-28 4:00

>>531
Steve, we know you stole those sounds from Soundcloud without giving credits and added duck tracks with Audacity.

Name: Anonymous 2020-04-28 21:11

>>534
Proof?

Name: Anonymous 2020-04-28 22:33

>>535
That's what you do, bydlo. You steal gfx and sounds.

Proof?
The Russian in you is not that far, Steve. A nation of thieves and liars. A nation of a forever unfinished game.

Name: Anonymous 2020-04-28 23:05

>>536
Proof?

Name: Anonymous 2020-04-29 2:51

>>537
Yes.

Name: Anonymous 2020-04-29 15:03

>>538
??

Name: Anonymous 2020-04-29 21:53

>>539
!!

Name: Anonymous 2020-04-30 16:17

>>540
You have too dicks but only two balls?

Name: !Ps1ivhrO6w 2020-05-01 16:08

The only worthwhileness of games (interactive media) is as simulations of or interfaces to actual mechanisms.

To make money it can be too wasteful or confusing, because artistic and scientific inclinations must be mixed in a xor-gate fashion.

But if a capitalist is involved and hires one worker for each aspect, efficiency and coherence could be secured, if the difference in their communication styles doesn't get in the way.

But to do it simply to entertain people, and through illusion grab their money? Shouldn't such a combination of talents generate a proportionally large amount of wealth instead?

This is the failure of propaganda-based economies. They do not enrich their buyers on the deal. And the buyers are the working force. And a poor working force is an untalented working force. And an untalented working force makes poor products, and also limits what a capitalist can hope to achieve through the wise application of money.

Name: Anonymous 2020-05-07 20:07

Still trying to come up with the soundtrack direction (again with ducks for watermarking):
https://soundcloud.com/nash_gold/spell-of-mastery-tambourine-loop

Unfortunately this style can appear a bit too serious for a turn-based indie pixelart game. I had thoughts about a more upbeat approach with a trumpets, but it was sounding just too annoying. Also couldn't find any good tambourine sample. Those coming with sf2 fonts sound like ass.

LMMS also has no way to do any actual math on the output, like dubbing it.

Name: Anonymous 2020-05-09 22:07

>>543
sounds familiar

Name: Anonymous 2020-05-09 22:17

>>544
No kidding? He stole it and added the quacks.

Name: Anonymous 2020-05-09 22:27

>>545
Proof?

Name: Anonymous 2020-05-09 22:40

>>546
Yes.

Name: Anonymous 2020-05-09 22:52

>>547
no proof

Ok.

Name: Anonymous 2020-05-09 23:22

>>548
Ok let's dig a thread from 2013 then (7 years after Nikita still hasn't finished his game)
https://archive.tinychan.net/read/prog/1357554123

This is Nikita's account at deviantart: https://www.deviantart.com/gensym (Nikita telling people he's a proud Russian and communist who steal their asset)


And just for the lulz, another message from Nikita: https://archive.tinychan.net/read/prog/1358350843/19

Name: Anonymous 2020-05-09 23:32

>>549
You're imagining something using some random Russian poster as a proof. I don't steal anything. Otherwise point the source from where my music came.

Name: Anonymous 2020-05-09 23:52

>>550
The famous random Russian whose name is Nikita Sadkov and who uses Symta. It could be any Russian, everybody uses Symta.

Name: Anonymous 2020-05-10 0:37

>>551
Is Nikita a self-hating Russian

Name: Anonymous 2020-05-10 0:58

>>551
Proof?

Name: Anonymous 2020-09-26 18:35

I'm back.

Since this thread has lost steam, I'll sage.

working on javascript/html5 games now, small concepts, zero-player games (animations)

Name: !Ps1ivhrO6w 2020-09-28 21:55

Look! Direct kinematics!

https://imgur.com/a/JSZoXFN

now for the reverse...

Name: !Ps1ivhrO6w 2020-09-28 23:01

Look! Reverse kinematics!

https://imgur.com/a/kXyeo1h

I would probably use something a bit more numeric for larger cases...

https://imgur.com/a/N083a43

Name: Anonymous 2020-09-29 6:23

>>556
Your 'f' looks like 'p', so "for" appears like "por". That makes your script resemble Spanish.

Name: !Ps1ivhrO6w 2020-09-29 18:30

>>557
I hadn't noticed that, thanks. I will try to make my 'f's a bit taller from now on...

Name: !Ps1ivhrO6w 2020-10-03 23:56

motive.txt

explosions and novelty and effects : D O P A M I N E

index.html

https://toyprotector.github.io/dopamine/

Name: Anonymous 2020-10-04 6:37

Is anyone in this thread actually writing a game.

Do you want some music for it or scriptwriting?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List