Id like to learn to code BBS games with Java? Beginners level programmer here. reddit / bbs ---------------------------------------------------------------------- WhoIsMaxMouse · 2018-06-18 03:22 Hello. I really would like to learn to make my own MUDlike type of game and other bbs types of games like puzzlers and casual games. I have been learning Java for a little while doing alot of beginners tutorials BUT id really like to cater my further learning of coding BBS games. I really would like to stay within Java is this possible to do with Java? I have considered learning a bit of python too as well but id like to stay in Java since ive already spent alot of time learning some of it. Are there any good online resources teaching basics of sysopsing and programming bbs doors possibly in java. I really want to support and grow and potentially revive the bbs scene but there is so much to learn and only so much i can do as an ansi artist. Ive played aroudn with Mystic BBS and am a bit familiar with it. id like my games and programs on mystic BBS and also other bbs software like the game DoorMUD etc I really want to make multiplayer games, and also games in real time, so i need some kinda direction. some of my ideas. [Roguelike idea](https://i.redd.it/oq1igs1eho411.jpg) [Mud brainstorming ](https://i.redd.it/kkey849gho411.jpg) [Simcity inspired game.](https://i.redd.it/ro9ztuviho411.jpg) ---------------------------------------------------------------------- DaleYRoss · 2018-06-18 05:10 For which BBS Software? ---------------------------------------------------------------------- WhoIsMaxMouse · 2018-06-18 06:02 MOst likely Mystic BBS but would be nice if it could be played on multiple bbses like the game DoorMUD ---------------------------------------------------------------------- ThisIsALousyUsername · 2018-06-18 15:21 Theoretically I guess any code the host system can run can be run as a Door? As I understand it, Doors (originally, at least) were executables launched by the BBS software within a shell; In other words, TradeWars2002 was a (usually DOS) application launched by the (DOS-based) BBS app, with all the I/O echoed through the serial (modem) connection. Now Telnet/SSL connections are probably the most popular way of connecting to a BBS these days (using IP requests rather than direct dial-up), but what Doors you can run depends entirely (as far as I know) on what OS the BBS is running in. I believe Mystic BBS can run under Windows (dunno what versions) but most classic Door games were designed for MS-DOS... Not the partial emulation/simulation provided by DOSBox, but real, full MS-DOS with memory management hooks & all that. Some games meant for MS-DOS may be able to run under partial emulation, while some would need fixing to work without the traditional system hooks, & some won't run at all unless you want to rewrite them as a port to a modern OS. I can run a BBS from Android & it works fine (with my mobile device staying online effectively 24/7, it has more up-time than any of my other computers; there are occasional connectivity losses, but only brief ones & actually the LTE connection is far, far more stable than the DSL here). Problem is, *none* of the classic Door games I'd like to run can be run from a Linux prompt, even using QEMU. By running an original MS-DOS or Win98SE image in DOSBox on Android, I can get the Door apps to run locally, but the Mystic BBS app doesn't see the connections (DOSBox networking is more focused on IPX; I can't get a BBS to connect yet). So I can run a BBS natively from a Linux-based shell under Android, with no classic Doors available; or I can run the BBS & most classic Doors from a virtualized MS-DOS image inside DOSBox on top of Android, with no connectivity. :( Unfortunately for me, no one in the BBS scene seems interested in running a BBS with classic Doors on a mobile device, & no one in the DOSBox for Android scene has been able to help get BBS apps running in virtualization. Needing full original MS-DOS has been a deal-breaker with DOSBox because running full MS-DOS in a DOSBox VirtualMachine is not officially supported. As for writing your own Door app, I'm pretty sure the whole challenge is getting the BBS to launch the app & relay that app's I/O through the remote serial connection instead of the local keyboard & monitor. If you can get a simple Hello World app to run, be seen, & controlled, through the BBS's remote connection, anything you can run using only text-based I/O should be doable. ---------------------------------------------------------------------- WhoIsMaxMouse · 2018-06-18 16:52 you know what, this is really helpful and im so thankful. Its given me a place to start and helped me realised what to focus on. Id love more advice whenever you can think of anything. thanks again ---------------------------------------------------------------------- WhoIsMaxMouse · 2018-06-18 16:54 My concern is not so much preserving the old BBS ways of dial up but more to bring more attention to what is capable in todays day and age with BBSes so yes it would be telnet focused and more of a palce where i can put up new projects and games rather then try find a way to run some obscure door game from the 90s that no one plays anyways. ---------------------------------------------------------------------- NuSkooler · 2018-06-18 20:28 FWIW, there are people running ENiGMA 1/2 on Android with "legacy" door games (via QEMU IIRC) ---------------------------------------------------------------------- NuSkooler · 2018-06-18 20:32 So we meet again... I suggest for your project you make your game a fully standalone \*server\* vs a door. If it's a door, you run into issues with those that run retro systems (can't run Java), dropfile and transfer of connection information (e.g. DOOR32.SYS requires a shared file descriptor that breaks when people serve a board over SSH quite often), etc. Instead, let boards "bridge" to your server. This is how BBS door game servers work. There are multiple schemes (which I can provide more detail on if you decide this path) of transferring a user from a board to your game server. ---------------------------------------------------------------------- mro_1337 · 2018-06-18 20:59 i wouldnt pattern any door after doormud; that game is a failure overall and in the end it was only coded for synchronet bbs. also are you confusing java with javascript? ---------------------------------------------------------------------- mro_1337 · 2018-06-18 21:01 what is this 'shared descriptor' ? i havent encountered this ---------------------------------------------------------------------- NuSkooler · 2018-06-18 22:48 One of DOOR32.SYS's more popular ways of working (generally for native Win32 EXEs) is to pass a \*shared\* socket file descriptor (aka handle) for the door to do direct I/O on. This is a pretty horrid idea and breaks down in various ways... one of which is people running their board on SSH, which of course the door does not understand. Better approaches: stdio, pass a \*port\* for a socket to \*connect\* back to, or for this particular case, just run as a full blown server. ---------------------------------------------------------------------- ILikeBumblebees · 2018-06-18 23:08 > also are you confusing java with javascript? Neither one is really suitable for writing a BBS door. Java seems a lot more reasonable than JavaScript, but you *might* be able to get something working in JS with Node. Apart from Synchronet, though, most BBS software is still DOS-based, and I don't think either Node or the Java VM are available for DOS. Pascal, C, or even BASIC would be a better choice. [FreePascal](https://www.freepascal.org/), [OpenWatcom](http://openwatcom.org/), and [FreeBasic](https://www.freebasic.net/) are all decent open-source compilers for those languages that can target DOS as well as Linux and Windows, so would be better choices for simplicity and portability. ---------------------------------------------------------------------- WhoIsMaxMouse · 2018-06-19 02:33 Java as in Java. Doormud as in its game play elements, not as in how its run or coded to work. ---------------------------------------------------------------------- ThisIsALousyUsername · 2018-06-19 06:04 I'd been trying to... If you can point me in the right direction I'd appreciate it. I even have a Draft email to beg you on the subject. ---------------------------------------------------------------------- NuSkooler · 2018-06-19 15:16 Hop on #enigma-bbs on FreeNode and you can probably get some good guidance. Also, check out [https://undercurrents.io](https://undercurrents.io) \- richinseattle (the op of this board) has done a lot of work on the subject. ---------------------------------------------------------------------- WhoIsMaxMouse · 2018-06-20 18:50 Yes, you understand where im at and where im headed, this is good info thankyou. this is all helping me thankyou guys. ---------------------------------------------------------------------- NuSkooler · 2018-06-21 02:55 ENiGMA 1/2 BBS soft is written entirely in Node.js (Multi-platform). Magicka is in C++ (Linux, Windows, BSDs). x/84 is written in Python (Multi-platform). Archaic Binary is in C#, there are a few softs in Ruby, etc. Or TL;DR: Language doesn't matter, and unless you're planning on running on retro hardware, you're looking at Windows/Linux/BSD/OSX systems, not DOS. To target the most systems possible, just pick a multi-platform language. The next part deciding if you're going to run as a standalone server (highly suggested) or via door dropfiles. If you go for the second, DOORINFO#.DEF and DOOR32.SYS are probably the best to support -- maybe DOOR.SYS also. ...but again, you can dodge all of that by just having your game run as a telnet-able standalone game. There are ways to get pretty much all of the software out there to talk to that. ---------------------------------------------------------------------- ThisIsALousyUsername · 2018-06-22 09:14 Thanks, I will! ---------------------------------------------------------------------- mro_1337 · 2018-06-28 05:16 if you run synchronet you can easily make a doorgame in javascript.