VOGONS

Common searches


First post, by JoeStrout

User metadata
Rank Newbie
Rank
Newbie

Hi guys — newbie going out on a limb here, so please be kind. 😀

First to introduce myself: my name is Joe Strout, and I've been coding since I was a kid with a TI-99/4A. Some folks around here might be old/geeky enough to have read some of the articles I wrote for Nibble magazine back in the day (including a couple of cover features!). I was also the lead engineer at Real Software (makers of REALbasic, which is called Xojo nowadays) for about ten years before moving on to other things. I've also done stints at various times teaching programming to kids, which is something I'm passionate about (though anybody with an eagerness to learn counts as a kid in this respect).

In the last couple of years I've taken all that, along with all my gripes about other scripting languages (especially Lua and Python), and poured them into a new one called MiniScript. It was designed to be an embedded language you might use (or find) in other games, and indeed there are a couple of games in development now that use it (GreyHack for example, which you can find on Steam). But the real secret goal I've had all along is to create an environment where people today can learn to program the way I did: by booting up a machine with a blinking cursor, in which you can type commands and make stuff happen. There is something truly magical about that, which today's fancy development environments do not capture.

So I've started building "Mini Micro," a sort of 80s-style virtual home computer from an alternate universe. Instead of BASIC it uses MiniScript, which is modern and clean. And it'll have more power than a real '80s computer, with support for tiles, sprites, digitized sounds, maybe even networking. In terms of capability, it'll probably cap out around SNES level; I have no intention of adding support for 3D graphics, for example.

PITkdWF.png

It's still a work in progress, but far enough along that I'd like to start discussing it with others like myself, who might enjoy the retro-style interactive-command interface to a more powerful platform. Where to find such nutty people, though? So I did some searching on likely keywords, and found my way here.

If this is off topic for this board, I do apologize, and welcome any suggestions for other communities I should try.

Thanks,
- Joe

Reply 1 of 12, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

Oooohhhh.. NICE!

Besides graphics, what do you have planned as far as sound / music capabilities go?

Will it just go through the sound system of whatever system it is running on or will it have support for such things as Adlib and Soundblaster emulation and the like?

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 2 of 12, by JoeStrout

User metadata
Rank Newbie
Rank
Newbie

I'm planning support for digitized sounds, either loaded from disk or constructed procedurally. That could include music simply played as a digitized sound, or played as a series of notes under program control.

I'm not planning to emulate any particular vintage hardware, though. In keeping with the rest of the system, it is very much "inspired by" rather than "emulation of." 😀

Reply 3 of 12, by vladstamate

User metadata
Rank Oldbie
Rank
Oldbie

I think it is an awesome idea, definitely very fresh.

I also took a look at MiniScript and I like it a lot. Do you have bindings to and from C++ ?

YouTube channel: https://www.youtube.com/channel/UC7HbC_nq8t1S9l7qGYL0mTA
Collection: http://www.digiloguemuseum.com/index.html
Emulator: https://sites.google.com/site/capex86/
Raytracer: https://sites.google.com/site/opaqueraytracer/

Reply 4 of 12, by JoeStrout

User metadata
Rank Newbie
Rank
Newbie

Thanks for the feedback! That really means a lot to me.

Indeed we do have MiniScript for C++. I'm using it in the command-line version, but anyone can grab the source here and incorporate it into their own C/C++ projects. Documentation on that is still a bit thin, but I'm eager to help!

Reply 6 of 12, by SirNickity

User metadata
Rank Oldbie
Rank
Oldbie

Usually I feel like the last thing the world needs is someone else's pet language. (I still don't see Lua and Python catching on when we already have a perfectly good Perl.) But I have to admit, that does look pretty nice. It could definitely gain a foothold as a beginner's language with competency to grow along with the programmer's skill. Seems better than BASIC -- not as clunky, and with an intuitive object-oriented interface built in from the start.

I would really like to see something like this find its way onto one or more of the hobbyist hardware platforms coming out these days. There are some neat kits that are basically today's equivalent of the old 8-bit micros from the 70s / early 80s home computer era, that you can build yourself. I am a big believer in getting back to a DIY culture. Imagine one of those, a PS2 keyboard, an LCD, and a fresh new language.

Beyond just an experimenter's coding platform, if it had the I/O capabilities of an Arduino, I think even more advanced users would use it as a fun and simple program + hardware sketchpad for prototyping simple design concepts before committing to more sophisticated development and PCB fabrication. I could definitely see this on my workbench ready to be an easy-to-use test harness for other projects.

Reply 7 of 12, by JoeStrout

User metadata
Rank Newbie
Rank
Newbie

Thank you for the feedback. Python is a 900-pound gorilla and Lua has already caught on far more than it deserves; indeed, MiniScript was written largely as a reaction to Lua. (I started writing a book on programming for kids in Lua, but gave it up in disgust after a few chapters... Lua's pretty on the surface, but the ugly runs deep.)

I agree it could be a good hardware hacking language, too, because it is very tiny at its core. I have a little "Omega2" board here that runs Linux, but when I tried to install Python on it, it choked. I haven't tried it, but I would expect MiniScript (the C++ version) to work on it just fine. With access to the I/Os it could be a fun and easy prototyping platform, as you said.

But I don't want to get delusions about MiniScript ever deposing existing languages. What I'm trying to create, with Mini Micro in particular, is something that doesn't currently exist: a REPL-based, game-ready environment that's standardized enough that you can expect your code to work on pretty much anybody's system. This lets us write books/course materials that work the same in Mac, PC, and Linux-based classrooms; kids can work together when one of them has a PC and the other has an iPad; etc. The fact that the language itself is simple and elegant is just a perk. 😀

Reply 8 of 12, by vladstamate

User metadata
Rank Oldbie
Rank
Oldbie
SirNickity wrote:

Usually I feel like the last thing the world needs is someone else's pet language. (I still don't see Lua and Python catching on when we already have a perfectly good Perl.)

Catching on? You are deluding yourself. As far as programmers are concerned Python has a considerable more usage than Perl. Modern AI and machine learning libraries to blame. There are multiple resources on the web about this, but here is a trustworthy one:
https://www.businessinsider.com/the-10-most-p … -github-2018-10

As far as comparing Lua to Perl that is...not smart. That is like saying I already have a hammer why would I need a screwdriver? Most programming languages have a market they do well into and some that they do not do well. I will never write my Linux scripts in Lua but at the same time I will never write a game script in Perl. Both of them can coexist just fine and they do not need to be mutually exclusive.

YouTube channel: https://www.youtube.com/channel/UC7HbC_nq8t1S9l7qGYL0mTA
Collection: http://www.digiloguemuseum.com/index.html
Emulator: https://sites.google.com/site/capex86/
Raytracer: https://sites.google.com/site/opaqueraytracer/

Reply 10 of 12, by vladstamate

User metadata
Rank Oldbie
Rank
Oldbie
SirNickity wrote:

Would you have felt better if I had wrapped that line in <sarcasm> tags? Because I think you missed the fact that it was very much tongue-in-cheek.

Yes 😀 I clearly missed the tag, my mistake 😀

YouTube channel: https://www.youtube.com/channel/UC7HbC_nq8t1S9l7qGYL0mTA
Collection: http://www.digiloguemuseum.com/index.html
Emulator: https://sites.google.com/site/capex86/
Raytracer: https://sites.google.com/site/opaqueraytracer/

Reply 11 of 12, by JoeStrout

User metadata
Rank Newbie
Rank
Newbie

I'm excited to announce the very first public release of Mini Micro as a stand-alone Mac and Windows app! Grab it here:

https://miniscript.org/MiniMicro/​

This is version 0.1. It does not yet have support for sounds or tile maps, but text, pixel graphics, and sprites are all working fine! See the development roadmap for details. And be sure to grab the Mini Micro Cheat Sheet, which gives you everything you need to know about Mini Micro and MiniScript itself in only two pages!

(I wasn't able to make a Linux build of this one, due to some weird Unity issue I still need to sort out. But I'll try to get that squared away for version 0.2 if I can.)

I welcome any feedback. Thanks for giving it a try!

Reply 12 of 12, by JoeStrout

User metadata
Rank Newbie
Rank
Newbie

Mini Micro version 0.2 is now released! This version adds extensive sound support, including sounds loaded from WAV files and sounds synthesized in code. Grab the latest here:

https://miniscript.org/MiniMicro/​

See the development roadmap for details on how this fits into the grand scheme of things (hint: the only major feature not done at this point is tile maps!). And don't forget the Mini Micro Cheat Sheet, which gives you everything you need to know about Mini Micro and MiniScript itself in less than three pages!