View Full Version : Development started on TNT2
allnodcoms
2007.09.13, 06:27 AM
Hi all,
Just a quick post to let you all know that work has started on a complete rewrite of TNTBasic. The original version (now Open Source) was written in Metrowerks CodeWarrior, and there were some serious issues with getting the project files into XCode. It relied on legacy libraries and had some pretty major performance issues, mainly on the graphic front. The new TNT2 project aims to recreate the language, fix the issues that bugged the original, and add new features to extend what was already a pretty good package. The IDE is also being rewritten from the ground up.
You can keep an eye on progress over at the TNTBasic Forums (http://tntbasic.com/community/forums/index.php), and there is also a Developer Blog (http://allnodcoms.com/tnt_files/tnt_blog.htm).
It is still in the early stages of development, but an alpha release is anticipated for the end of the year.
Danny (nod the mod)
Najdorf
2007.09.13, 10:39 AM
Cool, I'll always remember TNT as the tool I started making games with, which ultimately changed my life.
It's a great tool to learn the basics of programming and getting something done fast even if it's your first time making a game.
maximile
2007.09.13, 10:44 AM
I loved TNT; I learnt a lot from it. It's great that it's still being worked on.
allnodcoms
2007.09.14, 09:02 PM
Nice to hear you have fond memories of TNT, if you've not seen it in a while, the existing engine has undergone some work in the last year or so (thanks to Mark Tully, the original developer) and many bugs were fixed and features added. I'm not one of the original team, I came to TNT a couple of years ago and it reminded me of my days on the Atari ST. The TNT2 project aims to retain the old school style of TNTBasic, but use up to date technologies for both the engine and the IDE. I'm also looking into a compiler...
You never know, if things go as planned we might even be able to give BLITZ and TORQUE a run for their money!
Danny (nod the mod)
Leisure Suit Lurie
2007.09.14, 09:58 PM
My favorite part of TNT was definitely the map editor. I hope that makes it through intact to version 2.
allnodcoms
2007.09.15, 04:19 AM
Hi again Dan, yes, the sprite editor stays and is getting a major overhaul. I'm allowing the use of sprites as well as tiles on the new map format (to allow multiple layers to be drawn and scrolled at once), and I'm adding a few Photoshop shortcuts to get rid of the annoying palettes that always seem to be where you want to put a tile!
TNT2 also has a sprite editor, CS3 it aint but it provides some handy, last minute touch up tools and various options for grabbing and manipulating images, previewing animations and more...
Unfortunately, an audio waveform editor is out of my league, but the preferences allow users to specify an external editor for resources, and AppleScript is used to launch these with the click of button. It's a cop out, but if it works ;)
Don't know if you will remember but I was working on a replacement for Hieroglyph in RB a while ago, this is what I'm using as a basis for the new IDE, but I may rewrite for XCode in the future. The engine is C / Obj-C.
Danny (nod the mod)
Duane
2007.09.15, 12:00 PM
looks cool. Will there be a way to interface objective-c?
Skorche
2007.09.15, 11:03 PM
Say, I've got a bridge I could sell you (or a physics library). Real cheap (free even)!
Chipmunk Physics Library (http://wiki.slembcke.net/main/published/Chipmunk)
Duane
2007.09.16, 12:30 PM
Will you be able to load modules????
If this is done well, it could compete with Blitz Basic (for the mac).... :D
How is compilation done? Do you compile it to C, then from there compile it with gcc, or do you do assembly, or *gasp* directly to machine?
allnodcoms
2007.09.16, 02:08 PM
I am factoring in language extensions from the offset, so that'll be a yes... at least on paper ;) It's the main reason for going with Obj-C (over classical C, which I'm far happier with).
Compilation is a way off yet, but I'd rather not go through gcc if I can help it. It's by far the easiest way, from my point of view anyway, but doesn't look so clever from a user perspective. I think the compiler side of things is best described as a "work in progress". I want to get it running quickly through the interpreter first, or just running would be good.
Mmmm... A physics library, I may take a look at this once the existing functionality has been implemented. Our first extension perhaps?
Danny (nod the mod)
Leisure Suit Lurie
2007.09.16, 03:37 PM
I know you're targeting backwards compatibility, but the language would benefit some from removing multi-word function names from it.
allnodcoms
2007.09.16, 09:35 PM
I know you're targeting backwards compatibility, but the language would benefit some from removing multi-word function names from it.
Totally agree, I'm writing a parser not only for multi-part names, but for function calls which can actually have additional words appearing at random places in the parameter list, functions with the same name that do different things dependant on the number and nature of the parameters, and a fairly arbitrary use of brackets... It makes defining a parse state a pretty hit and miss affair.
The reason I'm sticking with the original syntax (in the most part) is mainly nostalgic, it's why I'm not introducing 'objects'. TNT is an old school basic based on 16 bit micro software, if I go down the single word function route, with all parameters enclosed in brackets (and the losing the odd 'TO') it starts looking a bit like C, or Blitz if you like... For example, one thing I intend to add to TNT in this version is a GOSUB (something the original strangely never had). The reason for this is that basic never had procedures (which are going!) or functions (which are coming!) so you had to make do with subroutines. People may never use them, but they are there if they want to. I like the 'feel' of TNT as is and would like to retain that, just make it more powerful. Having said all that I love C, so the extensions to the language may well use a more parser friendly syntax convention ;)
Danny (nod the mod)
allnodcoms
2007.09.18, 03:59 PM
I was planning on using the existing syntax, but this may not be everyone's cup of Earl Grey, and a more modern approach would make my life so much easier. So I've decided to use up a lifeline and "Ask The Audience" (I've got no friends to phone and 50/50 wouldn't really help!). I'm running a bit of a straw poll (http://tntbasic.com/community/forums/showthread.php?threadid=1331) over at the TNT site, if you would like to voice an opinion on this then please let me know either here or over there...
I'm also implementing suggestions from the 'Feature Request (http://sourceforge.net/tracker/?group_id=135906&atid=734242)' list at our SourceForge site (http://sourceforge.net/projects/tntbasic/) if anyone has any other suggestions.
Danny (nod the mod)
Leisure Suit Lurie
2007.09.18, 07:01 PM
How about you compromise and force people to add underscores to multi-word function names in the new version?
i.e., in the new version they'll have to do Set_Pixel_Colour?
Not too onerous, is it?
AnotherJake
2007.09.18, 08:37 PM
You don't have to require underscores since those are alnums and easily parsed without fanfare. I say just do it like C and be done with it. There isn't anything wrong with using parentheses to group arguments either. Old-skool BASIC (8-bit variety like on the TRS-80) used to do it that way anyway for functions, although I seem to recall the parentheses were optional (it's been a while...) I'm not familiar with TNT though so maybe I don't know what I'm talking about.
P.S. I actually miss the old days of nothing but line-numbered BASIC where everything was in caps and semi-graphics characters. Saturday mornings, cartoons and GOSUB 2020 ... ah the memories ...
allnodcoms
2007.09.19, 05:49 AM
I'm with AnotherJake on the underscore issue, it's just whitespace without the white bit, or the space for that matter. I think the solution I've come up with, again as hinted at above, is to make the spaces, brackets and odd 'TO' in the parameter lists optional, the syntax analyser will strip them anyway so they can be omitted if you prefer more 'C' looking code, or you can add them in for a bit of rubber keyed, 80's nostalgia. Work wise it's no biggy to implement, it allows the new version to run existing projects without serious code alterations and brings TNT in line with more modern BASIC variants.
BTW Dan, you put a 'u' in 'colour', was that a typo? ;) I thought it was just us crazy Brits and a few Canadians who did that...
Danny (nod the mod)
Leisure Suit Lurie
2007.09.19, 07:28 PM
No. That's the actual function name in the TNT docs.
I went a couple months typing 'colour' til Mark told me 'color' worked, too.
Grr....
allnodcoms
2007.10.07, 06:28 PM
Another quick note, work is progressing a pace here and I'm expecting a working build by December. I've been experimenting with a 'proof of theory' version (a jobbing version to test my VM ideas) and it's proved very profitable. There is a complete breakdown and notice of current project status on My BLOG (http://allnodcoms.com/tnt_files/blog2.htm).
If the build meets my expectations I may release it on a closed basis. It is purely a test, but should be a functional one, so feedback could be a benefit.
The next post, expected in a week or so, should have some screen grabs of the revised editor and a definitive functionality set for that app.
I'll post here again whenever there are updates.
'Till next time...
Danny
Carlos Camacho
2007.10.09, 01:41 PM
This is very good news. What happened to Mark Tully? I thought he was one of the two people behind TNT?
My request would be for a system that could record movement of sprites. Much like how SEUCK once did. For example, you select the sprite and place it on the map. You then draw (bezier) lines to indicate the path that the sprite will take. Perhaps even having a dialog window for more advance functions like...
You draw the path that the sprite will take. At the various control points, you can select some alterations, such as change SFX, rotate, change sprite image.
Or perhaps it could work in thsi manner:
Predefined movement patterns can be drag-dropped on a sprite. For example, move in a vertical squiggly pattern. If sprite ABC moves within N tiles of your path, move towards it.
Lot's could be done in this realm. :)
Cheers,
allnodcoms
2007.10.09, 07:39 PM
The 'Shoot 'Em Up Construction Kit'! My lord there's a thing I thought I'd never hear of again... Got me thinking now, STAC, 3DCK, Talespin... Halcyon days! ;)
I've had many thoughts about how TNT could be improved, some stranger than others, but I want to keep it as true to its roots as possible, ie. a language and not a CK. Having said that, we have MOAN, and STOS had animation strings, so an editor to create these would not be out of place. Thanks for the suggestion and watch this space...
Mark is still about, just not developing TNT any more. He Open Sourced it so that the community could keep it going, as his work commitments got in the way. Unfortunately the community is made up of BASIC programmers who come to the site for advice, and generally speaking, if they could code OpenGL in Obj-C they probably would be. The people that TNT helped to cut their teeth on Mac games have moved on to bigger and better things and the Open Source thing sort of fizzled out. Two years produced one new developer, and you're listening to him ;P
It's a real shame that the existing source could not have been revised and updated for XCode, I've used CodeWarrior a lot in the past and it was always hugely proprietary, projects were always an issue when new versions were released, so porting to a whole new environment just proved too much. The original source also relied heavily on the Metrowerks' PowerPlant libraries and other deprecated, pre OS X technologies, so much so in fact that a re-write was the quicker option.
If anyone out there is interested in playing with the original, the source is all there on SourceForge...
I'd hate anyone to think I was trying to steal Mark's thunder here, that's definitely not the case, I was just the only one who had the time, experience and inclination to do something with it. Hopefully I can do the old girl justice...
'Till next time...
Danny (nod the mod)
vBulletin® v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.