1. Mind blowingly impressive.

https://www.youtube.com/watch?v=72y2EC5fkcE

Where would you even start? One small point: "No multithreaded support so far", which is probably quite wise.

At least I'm not completely alone: https://www.youtube.com/watch?v=D2AW9PMSHTw - and I have to wholeheartedly agree with the comment made at 19:00 smile

One thing I would put good money on is the gui side being oft-redrawn from some internal state, rather than reverse execution somehow "undrawing" things.

Another take on "time travel debugging" (no sound): https://www.youtube.com/watch?v=_bbxR503-u0 and perhaps https://www.youtube.com/watch?v=MJCYQzeL-w8 which give a subtle hint what all those logs are, and how wrong I was to completely ignore them in the first video, and is slightly strange in that the critical functionality seems to be half in the editor and half in the app being developed...

I think the first step (intellectually speaking) is to divorce the debugger from the runtime, make them two communicating processes. Then (again, more of a thought experiment than recommended reality) you could introduce a middleman that convinces the debugger to display any whacky stuff, independent of what has/will/did happen. Add in some queries of logs of what happened when, and you're getting there...

PS: I love my 19:00 link. (it would o/c be much slicker without all the adverts)

PPS: I guess this forum really is finally completely dead.

new topic     » topic index » view message » categorize

2. Re: Mind blowingly impressive.

petelomax said...

PPS: I guess this forum really is finally completely dead.

Sorry, but I use w3m which isn't supported by youtube. It seems that I'm not able to follow this post from it's written contents only without that extra bit of video context, however.

What is "mind blowingly impressive?"

new topic     » goto parent     » topic index » view message » categorize

3. Re: Mind blowingly impressive.

jimcbrown said...

What is "mind blowingly impressive?"

Read some of the comments from (best first)
https://lobste.rs/s/pmz2je/tomorrow_corporation_tech_demo
https://tomorrowcorporation.com/posts/how-we-make-games-at-tomorrow-corp-our-custom-tools-tech-demo
https://forum.beyond3d.com/threads/tomorrow-corporation-tech-demo-really-crazy-indie-game-engine-plus-dev-tools.63266/
https://www.summarize.tech/www.youtube.com/watch?v=72y2EC5fkcE
https://www.linkedin.com/posts/ambrus-toth_tomorrow-corporation-tech-demo-activity-7190287163421319168-0uKS/
For more results see https://www.google.com/search?q=Tomorrow+Corporation+Tech+Demo

a telling comment from the second link that hadn't fully sunk in said...

all ran on a system that basically had 24MB of RAM to use for your game. And it wasn't just game state filling up that 24MB, it was your code and other read only resources - the kind of stuff that we don't have to include in our snapshots

It is taking a while, but I am slowly piecing together how that black magic might be possible

new topic     » goto parent     » topic index » view message » categorize

4. Re: Mind blowingly impressive.

petelomax said...

https://www.youtube.com/watch?v=72y2EC5fkcE

Where would you even start? One small point: "No multithreaded support so far", which is probably quite wise.

At least I'm not completely alone: https://www.youtube.com/watch?v=D2AW9PMSHTw - and I have to wholeheartedly agree with the comment made at 19:00 smile

One thing I would put good money on is the gui side being oft-redrawn from some internal state, rather than reverse execution somehow "undrawing" things.

Another take on "time travel debugging" (no sound): https://www.youtube.com/watch?v=_bbxR503-u0 and perhaps https://www.youtube.com/watch?v=MJCYQzeL-w8 which give a subtle hint what all those logs are, and how wrong I was to completely ignore them in the first video, and is slightly strange in that the critical functionality seems to be half in the editor and half in the app being developed...

I think the first step (intellectually speaking) is to divorce the debugger from the runtime, make them two communicating processes. Then (again, more of a thought experiment than recommended reality) you could introduce a middleman that convinces the debugger to display any whacky stuff, independent of what has/will/did happen. Add in some queries of logs of what happened when, and you're getting there...

PS: I love my 19:00 link. (it would o/c be much slicker without all the adverts)

PPS: I guess this forum really is finally completely dead.

Being able to update the game as it is running is some awesome stuff. Very useful for testing purposes and such.

new topic     » goto parent     » topic index » view message » categorize

5. Re: Mind blowingly impressive.

Icy_Viking said...

Being able to update the game as it is running is some awesome stuff. Very useful for testing purposes and such.

Indeed. Rather than "hot reload" or "step back", I think the key thing to focus on is "get back to where you were" from a(n auto) fresh start, with mid-session edit undo/redo being a bit of a frill.
Should a code/asset edit spanner the "get back" and force a full manual restart, I would consider that a minor peeve (relative to that very slick demo) as opposed to a deal breaker.
Likewise "from some earlier snapshot" would no doubt make it slicker/faster but "always/only from the very start" would still probably be perfectly good enough.

new topic     » goto parent     » topic index » view message » categorize

6. Re: Mind blowingly impressive.

Icy_Viking said...

Being able to update the game as it is running is some awesome stuff. Very useful for testing purposes and such.

[coff] Mirc [/coff]

This should be the default "trick" for any non-compiled language. I often recoded Tiggr on Eu-mirc (mirc being the back end brains to a dumb Eu bot).

Mirc cannot un-run the code by moving anything back thru the code, but since the string execute runs code using the full global var list at the point it's run, a simple layer could be built to save results of each line executed, and that list used to un-run the code.

Kat

new topic     » goto parent     » topic index » view message » categorize

7. Re: Mind blowingly impressive.

petelomax said...

PPS: I guess this forum really is finally completely dead.

I was wondering again today how to post a code bounty here. But, i guess the way things are, $500 or $1k isn't worth the bother.

Kat

new topic     » goto parent     » topic index » view message » categorize

8. Re: Mind blowingly impressive.

katsmeow said...

I was wondering again today how to post a code bounty here. But, i guess the way things are, $500 or $1k isn't worth the bother.

What probably is worthwhile however is writing it down, "rubber duck debugging" style.
On the plus side, there's no-one left here to complain you're cluttering up this busy web site!
Making it absolutely crystal clear has benefits all by itself, even if no-one bites, which they probably won't.
It has to have every last bit of information someone might possibly need, and make sense to a six year old.
It needs to succinctly stick to the actual requirements and be ruthlessly purged of any/all personal remarks.
The first attempt will be rubbish. If you haven't edited/tweaked it ten times, you haven't finished your job.

new topic     » goto parent     » topic index » view message » categorize

9. Re: Mind blowingly impressive.

petelomax said...
katsmeow said...

I was wondering again today how to post a code bounty here. But, i guess the way things are, $500 or $1k isn't worth the bother.

... What probably is worthwhile however is writing it down, ... and make sense to a six year old. ...

I wanna plug stuff into the computer, read it, think about it, and then write my decision back to it. Like, if a transponder i carry is outside, the computer can turn off all the lights inside? If the attic is 120 degrees, turn on a vent fan? If there's hail, cover the solar panels? If the rain water cistern is full, stop filling it? Freaking simple i/o done in the 1980's, but seemingly impossible on modern hardware and OE?

I paid someone to set up a raspi to read roof temperatures, but that is all it does. It cannot turn on a fan. It cannot read anything else. And it's a nix board, and as a 6 year old, i don't do nix. The stand-alone module like a raspi i agree with, given it's design with so many i/o pins, run control software on a 5w battery and not a 150w desktop computer, but as it is now, neither is useful in the real world.

The way i figure it now, if OE devs wanted OE to be useful in the real world, there'd already be i/o to hardware.

Kat

new topic     » goto parent     » topic index » view message » categorize

10. Re: Mind blowingly impressive.

One think struck me the other day (going back to the original topic):

We all know it is physically impossible for a human being to fling themselves out of a swimming pool and land on a diving board,
or for a train to reverse out of a devastated building, reconstructing it as it goes, so when we see that we immediately know the
trickery being played on us. Likewise we know it is not possible to run a program backwards, which begs the question:
Why oh why did I not realise it is the exact same thing, just a smidge more interactive?

These days we don't bat an eyelid when a movie file takes up several GB of disk space, so why would it be completely out of the
question for a debugger to write several GB, as long as it cleaned up after itself?

new topic     » goto parent     » topic index » view message » categorize

11. Re: Mind blowingly impressive.

petelomax said...

<snip> Likewise we know it is not possible to run a program backwards, which begs the question:
Why oh why did I not realise it is the exact same thing, just a smidge more interactive? </snip>

This is why i suggested writing a separate file of the results of a line running, or a block of code, you don't back up thru the code itself (altho that may be the most prominent thing displayed), you back up thru the saved state of the machine after or before a line. If you edit a line or a variable (or constant, etc), all that saved state file from that point onwards is deleted

Kat

new topic     » goto parent     » topic index » view message » categorize

12. Re: Mind blowingly impressive.

Exactly. The phrase "standing too close to the woods to see the trees" springs to mind. "Hot editing" is a whole new ball of wax.

new topic     » goto parent     » topic index » view message » categorize

13. Re: Mind blowingly impressive.

katsmeow said...

I wanna plug stuff into the computer, read it, think about it, and then write my decision back to it. Like, if a transponder i carry is outside, the computer can turn off all the lights inside? If the attic is 120 degrees, turn on a vent fan? If there's hail, cover the solar panels? If the rain water cistern is full, stop filling it? Freaking simple i/o done in the 1980's,

I paid someone to set up a raspi to read roof temperatures,

The stand-alone module like a raspi i agree with, given it's design with so many i/o pins, run control software on a 5w battery and not a 150w desktop computer, but as it is now, neither is useful in the real world.

I guess you weren't able to get ahold of the Ultimate64 after all? https://openeuphoria.org/forum/m/138250.wc

Or perhaps you did, but there was some other limitation on the Ultimate64 itself that prevent the modern C64 from working well with today's requirements?

katsmeow said...

but seemingly impossible on modern hardware and OE?

The way i figure it now, if OE devs wanted OE to be useful in the real world, there'd already be i/o to hardware.

And it's a nix board, and as a 6 year old, i don't do nix.

Kat

Well, OE does i/o to hardware, but to do it, you'd have to do nix.

Edit: Alas, for the other OS, well, we have these sage words:

katsmeow said...

Trying to write out through windows just seems impossible, what with no one doing it.

Source: https://openeuphoria.org/forum/m/138181.wc

katsmeow said...

I paid someone to set up a raspi to read roof temperatures, but that is all it does. It cannot turn on a fan. It cannot read anything else.

Well of course it could ... but you'd likely have to pay more to get this done. Or else learn nix to be able to do it yourself.

From ultimate64.com it looks like they will end their holiday at the end of this month and start accepting orders again in a few days, so maybe it's still not too late to get in on this.

new topic     » goto parent     » topic index » view message » categorize

14. Re: Mind blowingly impressive.

Icy_Viking said...

Being able to update the game as it is running is some awesome stuff. Very useful for testing purposes and such.

I suppose so but this is only impressive in light of the fact that they're using their own homegrown stuff. I was able to do this in dot net and C sharp twelve years ago reliably, and (less reliably) with Eclipse IDE and the right plugins for Java almost 20 years ago.

petelomax said...

It is taking a while, but I am slowly piecing together how that black magic might be possible

Do keep us informed of what you discover. This is interesting - I wonder if they'll ever open source their kit and let other folks start working on their tech stack too.

Interested to find out if anyone ever successfully does a 3-d game with it, and (dare I dream) even a Machinima?

new topic     » goto parent     » topic index » view message » categorize

15. Re: Mind blowingly impressive.

jimcbrown said...

I was able to do this in dot net and C sharp twelve years ago reliably, and (less reliably) with Eclipse IDE and the right plugins for Java almost 20 years ago.

Care to elaborate? Cakez hints it is just separate <game logic> and <game data> processes, if you can restart the former without upsetting the latter, that's hot reloading.
Of course there are limitations: you cannot change the data being stored, or the interface between the two processes, and debugging falls apart if any steps needed to get
back to where you were change in any way that cannot be flawlessly mapped to updated line numbers, etc. (Assuming the debugger would be a third process that effectively
just replays all the [tweaked] keystrokes/mouseclicks of the current debugging session.)

jimcbrown said...

I wonder if they'll ever open source their kit and let other folks start working on their tech stack too.

Doubt it, sadly.

new topic     » goto parent     » topic index » view message » categorize

16. Re: Mind blowingly impressive.

jimcbrown said...
katsmeow said...

[stuff]

[replies]

There's some generic pata-to-ram modules floating around. Paired with sata-to-pata modules, and swapping out the totally undocumented ram to be parallel-access (8/16 bits, seeing it's emulating an eisa slot?) dual-ported ram, would be satisfactory. Especially if the ram is 64MB or more, and the computer access it at sata-3 speeds.

I am not seeing the Ultimate64 as being a step forward to getting the lawn mower to take a step forward.

Kat

new topic     » goto parent     » topic index » view message » categorize

17. Re: Mind blowingly impressive.

katsmeow said...

I am not seeing the Ultimate64 as being a step forward to getting the lawn mower to take a step forward.

Personally I think this is a truly awful cringeworthy mess of a video, but B4A Control The LED Using Basic4Android and Arduino might give you an idea or two.
(You should know within the first 20 seconds whether or not it is worth carrying on watching.)
While completely beyond me, I assume that replacing an LED with some kind of proper power relay switch would be something you know enough about.
(At this point I think it's fair to say that Euphoria/Phix almost certainly simply ain't gonna play any part in the solution you seek.)

new topic     » goto parent     » topic index » view message » categorize

18. Re: Mind blowingly impressive.

petelomax said...
jimcbrown said...

I wonder if they'll ever open source their kit and let other folks start working on their tech stack too.

Doubt it, sadly.

That's a shame. I remember decades ago when id Software did the same for their game engines, and it was revolutionary.

petelomax said...
jimcbrown said...

I was able to do this in dot net and C sharp twelve years ago reliably, and (less reliably) with Eclipse IDE and the right plugins for Java almost 20 years ago.

Care to elaborate?

"Edit and Continue" or nowadays it's called "Hot Reloading" apparently.

https://learn.microsoft.com/en-us/visualstudio/debugger/how-to-enable-and-disable-edit-and-continue?view=vs-2022

petelomax said...

Cakez hints it is just... (Assuming the ...

Too many assumptions .. hard to do a fair comparison until we know what we're comparing!

new topic     » goto parent     » topic index » view message » categorize

19. Re: Mind blowingly impressive.

katsmeow said...

I am not seeing the Ultimate64 as being a step forward to getting the lawn mower to take a step forward.

Kat

That comes as a bit of a surprise (the lawn mower I mean, since this is the first time you mentioned it).

I'm curious if it's specifically the lawn mower step that you saw it not working (which might be a good example of sneaking in a "move the goal posts" sort of thing), or did you see an issue with the earlier steps discussed too (like turning a fan on the roof, or stuff related to your car engine)? In the car engine case I'm curious as to why that wouldn't have been mentioned earlier in the other thread when it was first brought up.

katsmeow said...

There's some generic pata-to-ram modules floating around.

If you have any good links, I would love to learn more about this. A few searches couldn't find anything useful...

petelomax said...

(At this point I think it's fair to say that Euphoria/Phix almost certainly simply ain't gonna play any part in the solution you seek.)

Agreed. It's a shame that Euphoria/Phix must be tied to windoze for this particular user to be useful, since Linux in particular makes it really easy to directly access physical memory like so:

mem = open("/dev/mem", "rw") 
seek(mem, YOUR_DEVICE_ADDRESS_HERE) 
puts(mem, ...) 
x = get_bytes(mem, num) 

(Paired with passing "memmap=0x[start_addr]$0x[end_addr]" as a Linux Kernel Parameter on boot as a guard on other programs or processes from using it, naturally.)

Edit: In other words, no C glue is required. It's almost 100% Eu, with some nix bootloader config as the only non Eu part.

But of course, the right tool for the right job and all that.

Edit2: Alas, here's some highly knowledgble folks who point out that the related Windoze trick of direct memory access last worked in Windows 2000: https://cygwin.com/pipermail/cygwin/2008-April/165550.html

Edit2 Cont.: I didn't realize but nowadays Linux comes with a command line utility to directly edit physical memory!

sudo busybox devmem 0x12345678 # read 
sudo busybox devmem 0x12345678 w 0x9abcdef0 # write 

new topic     » goto parent     » topic index » view message » categorize

20. Re: Mind blowingly impressive.

jimcbrown said...
katsmeow said...

I am not seeing the Ultimate64 as being a step forward to getting the lawn mower to take a step forward.

Kat

That comes as a bit of a surprise (the lawn mower I mean, since this is the first time you mentioned it).

I'm curious if it's specifically the lawn mower step that you saw it not working (which might be a good example of sneaking in a "move the goal posts" sort of thing), or did you see an issue with the earlier steps discussed too (like turning a fan on the roof, or stuff related to your car engine)? In the car engine case I'm curious as to why that wouldn't have been mentioned earlier in the other thread when it was first brought up.

And i am curious about you assuming i'd be divulging every detail of my life and aspirations. Saying anything only muddies the waters, and this has happened many times! Watch another example....

jimcbrown said...
katsmeow said...

There's some generic pata-to-ram modules floating around.

If you have any good links, I would love to learn more about this. A few searches couldn't find anything useful...

... and presto, you have gone off on web searches to prove i have no knowledge of this, and it will be a primary methodology of how i desire to interface to the computer. Until, someone remembers i said "relay", and in the methods of today, that means "plugging a relay directly into the desktop computer's motherboard". Holy carp!

Ok, take it so far off in left field
https://www.ebay.com/sch/i.html?_from=R40&_trksid=p4432023.m570.l1312&_nkw=pata++ram+module&_sacat=0
that you totally escape the point of the freaking OS sending and recieving communications from a device plugged into it. Me mentioning the usb/sata-pata-ram-dual-port-ram = pseudo-parport interface as the sole method of communications? Well, whatever it takes!, but i didn't need to do that to comm with this keybd or vga lcd screen!

jimcbrown said...
petelomax said...

(At this point I think it's fair to say that Euphoria/Phix almost certainly simply ain't gonna play any part in the solution you seek.)

Are you both saying that desktop computers and windows has "advanced" so far that it's no impossible for communications on sata, usb, old fashioned serial or parports? Then how the heck are my mouse, my keybd, my cameras, my thumb drives, and the dsl modem communicating with the computers?!?

jimcbrown said...

Agreed. It's a shame that Euphoria/Phix must be tied to windoze for this particular user to be useful, since Linux in particular makes it really easy to directly access physical memory like so:

mem = open("/dev/mem", "rw") 
 
[snip] 
 

And at this point i am cussing out loud. Very loud.

In the olden daze i'd bit bang the parport. From Apple, zx80, vic20, C64, 8086, 80286, all could do this. NOW, we are too cussed "advanced".

Kat
Forked into: inpout32

new topic     » goto parent     » topic index » view message » categorize

21. Re: Mind blowingly impressive.

This is so mind-blowingly impressive.

The male-dominated thread is telling me windose is unable to gets(), getkey(), puts(), or call bat file to do similar i/o or whatever physical device that is not bolted to the mobo. And that i am not typing on a keybd with a serial link to the OS and OE is a figment of my imagination. Furthermore, since the keybd doesn't really exist in real life, i cannot use anything similar, of perhaps a different shape and speed, with relays or CdS cells or mosfets or crosspoint chips, to put the ascii bit pattern of "A" onto a serial usb cable into the computer for OE to gets() and then puts() to the screen, which in my imagination is on a different serial wire, so i can see and supposedly verify the magic happened, and in my wildest nitemares OE can make if-then-else or while() decisions on whether to show me the "A" or something else.

And why must i explicitly tell you what each use is that i put the bit pattern to? And how can you complain about OE/Phix's falling market share with a requirement like that? Are you going to explain to me the speed difference between a mechanical relay and an ecl chip? Did i ask you to do that? Is such in the AUP for windose or OE or Phix or any cussed thing? Why must you be told what device that relay or ram interface or light bulb is seen by?

Maybe i should put relay contacts across every numeric key on this magic keybd that is not using a serial link to the OS, and glue CdS cells to places on the monitor that isn't using a serial link to the graphics chip on the mobo under windose control, and i can read the light and dark under each cell as a bit! It worked in the 1940's, surely the computers have not advanced such that this cannot work? I think it will be stupidly slow, especially compared to writing to a file on a sata-3 hdd, but wth, it beats trying to CUSSWORDS you have made getting data about using windows now as impossible to get and use as the secrets of the 100 flavors linux.

Kat

new topic     » goto parent     » topic index » view message » categorize

22. Re: Mind blowingly impressive.

Amazing that an adult cannot learn what most middle-school girls and boys manage to do with just a few days of tinkering.

I'm thinking it isn't inability, it's unwillingness to give up an opportunity to complain about how unfair the world is.

new topic     » goto parent     » topic index » view message » categorize

23. Re: Mind blowingly impressive.

katsmeow said...

The male-dominated thread

Okay. We're putting an end to this right now.

I will not condone any language that targets anyone based on their age, appearance, body type, culture, disability, ethnicity, economic status, gender, identity, nationality, race, religion, or sexuality. Doing so is unnecessary and unacceptable.

We can attack ideas all day but we will not attack people. If you feel targeted or you do not feel safe conducting yourself on this forum then please, reach out to me directly and I will address it.

I will remind everyone that we all abide by a Code of Conduct here and and I will make every effort to uphold that code for all members equally.

Lately I find myself with little patience and zero tolerance for any form of in-fighting. There are not many of us left here and the last thing we need is to attack each other.

Consider this a warning, and again I am speaking to everyone here: we will all remain civil or we will all face consequences.

-Greg

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu