9/21/18: Links Update-ishNot even sure this is update worthy but I removed the "star" rating on the links page. All of them of worth checking out and don't need an arbitrary rating system on them. (Especially when almost all the links were top star anyway...)
9/18/18: Lost Version of Doors Found From Late 2006 / Early 2007I'm surprised at the amount of stuff I keep stumbling upon digging through old drives and stuff. I found a reboot of the TUI (text user interface) Doors project from early 2007. The project started back in 1999/2000 but was scrapped. It looks like this was one of the many reboots I end up doing of previous projects. The whole idea of Doors was to give a Win 3x style interface to IBM XT class computers with also support for monochrome displays. There's also a version I wrote in 2016 that's a little further along than this one that hasn't been recovered yet...
I'm dating this one based on the PHP board post from 2006/2007 discussing it as well as some posts from the same time on the regular boards. Not much to see here except log in, create, size and name new group windows. There's also an option to run a command line command from the File menu. I had to fix a bug with the screen width not being set causing it to crash in DosBox to get it to run. (Fix is in the version posted.)
Download can be found in the NE Archive under the Lost Files section.
8/21/18: Lawn Mower Mania - Another project...Well, I decided I wanted to tackle a smaller game project to keep me active. My current open projects are rather large ones that still have a good amount of development to go. (NeChat, ZombieAttack and RPG_net 2.0) To fill my "project" time, I've decided to start making a simple puzzle/action-arcade style game written in Java about mowing lawns.
The idea currently is that you mow lawns (each level) for money while making sure your lawn mower isn't broken or out of gas (if needed). At the end of the level you can buy upgrades like better things for your current lawn mower (you start with a vintage reel push lawn mower), new more efficient lawn mowers, gas, repairs and lawn upgrades that can return previously ruined grass back to life if you accidentially mow too low or over things you shouldn't (flower beds). There will also eventually be enemies like birds, bees and perhaps even sprinkelers to avoid.
Right now I have a very rough version of the game started where you can mow the first level, gaining points until you manage to mow the whole lawn. If you go over a spot more than once, it gets mowed "too low" and you lose some points. If you mow again, it turns to dirt and you lose even more points. Running over a flower bed reduces your score considerably and you reduce the flowers to dirt. Like I said, it's still very early but coming along okay.
Click image for high resolution:
Link to latest: GitHub Link to project
7/6/18: RPG_net C++ v2.0 UpdateHey! I finally got engaged! Wooo!
In other less important news... still have been slowly making progress on the RPG_net 2.0 project. It's been refactored multiple times to make the code easier to read and more maintainable. Client code is up next for a refactor and I've been sort of slacking on that as it's a big "To Do". Hopefully some more updates coming down the way soon. The Disc Changer project has resurfaced which has also been taking up my time.
Link to latest: GitHub Link to project
4/25/18: RPG_net C++ v2.0So, after the last update where I found all the old sources of the RPG_net C++ project from back in college, I decided to see if I could rewrite it from scratch and actually have it work this time. (I know, just keep starting new projects but never finish them...) Again this client is using SDLNet 1.2. The client uses the ncurses library for display output. Currently I'm compiling and running the source code using g++ on Ubuntu and writing it in VS Code.
Well, within a few days I had my server application working where I could send parameterized command strings to it using a modified version of the old RPG_net client from 12 years ago and it would process the commands and return responses correctly.
Over the next week or so after that, I had the server up and running where you can configure the number of event listener threads that listen for parameterized commands from the client applications and then process them. A maintenance thread that runs and deregisters users who have timed out in the game and finally a notification thread that monitors the notification queue and sends out chat and server messages as the come in.
After I had the server application mostly up and running I also started to create a debug client application. As of right now, the client application will register the user to the game when the application starts up and the user enters their username. Afterwards, the main game thread will send update commands to the server when the player moves. There are also an update listener thread that polls the server for other user updates as well as notifications.
As of right now, I've tested with having a few clients open and moving around the ASCII game world with them and the users successfully can see eachother move around. There's still a lot to be done but work has gotten very busy so I haven't had a chance to touch it in a few days. All the current sources are up on my github page. When I have more time, I will update the C++ projects page with the latest information.
Link to latest: GitHub Link to project
4/4/18: Hard Drive Failure and Lost Sources FoundFirst the bad news. My hard drive on my main computer died. This was the computer that had the source code for Wry COBOL I was working on. I didn't think to back the file up anywhere because I didn't want to create a new github project for it. I tried recovering it from the drive but it looks like it's gone and will need to be re-written. (Hopefully.)
Now the good news! I was going through some old hard drives I've had floating around and found the one that was used as the NE server back in the late 2000s which I thought was fully dead. It turns out, I was able to spin it up, mount the volume and copy the data off! (Woo!)
Buried in all the treasures found on that drive was a bunch of versions of the C++ project "RPG_Net_Alpha" I've had on this site since 2006 with no updates! I went through and fixed each version enough so that it compiled and at least half worked. I then zipped them all up and put them on the projects page for it for anyone who is interested.
The latest graphics engine actually surprised me a bit. It had sprite animations, hit detection and regulated frames per second. The client/server applications were a little less entertaining. The latest version of the client is okay and sends messages back and forth between two clients pretty reliably and can even send a quit command that closes the current client as well as the remote one. The latest server code is some what the same as the client but can not manually send commands. It will also quit when a quit message is sent to it as well as auto respond with an update response when the client sends an update request to it so that's sort of cool.
Anyway, enough rambling. If interested here's the link to the projects page with more information: Link
3/13/18: Wry in COBOL?I started teaching myself some COBOL for the heck of it. I figured a new version of a Wry game or even just a remake of the original written in COBOL would be a fun little project to take on. So far I have my COBOL app loading up some parsed records from the original Wry game.
No real user interaction as of yet. I'm still thinking about how I'm going to deal with different screens having different amount of choices. COBOL uses a table data type to get array like behavior that I can use.
Something like below ("CHOICES" is the array in question):
01 STORY-RECORD. 88 END-OF-SD VALUE HIGH-VALUE. 05 RECORD-ID PIC 9(4). 05 CORRECT-CHOICE PIC 9(1). 05 STORY-TEXT PIC X(200). 05 CHOICES OCCURS 4 TIMES. 10 CHOICE-TEXT PIC X(50).Planning is going to be needed with how I'm going to format the input data files. COBOL loads files based on fixed width of the variables so making this not look like a mess in the data files will be fun. The one good thing is that it looks like COBOL offers indexed sequential file access and relative file access on top of basic sequential file access so I can have one story file to load from that will hopefully be fast to access. (I might think about making a story creator program as well to make creating stuff easier...hmmm)
Here's a first screen shot with data ripped from QB Wry (Complete with all the glorious spelling mistakes!): Link (Imgur)
So far I'm only in about 95 lines of code and about 35 of them is the old Wry logo I copied in. More info as it progresses.
2/21/18: Happy 19th Birthday NE!That's right! As of yesterday this website is now 19 years old! I can't believe after all these years it's still going (with some hiccups through the later 2000s when I thought it was a good idea to host the site from my bedroom... :) ) I feel like at this point, I should attempt to go back and find the release dates of all the files on the site and mark them down to give some sort of context of when they were released.
Not really anything else of substance to report just figured I'd give the ol' happy birthday update.
2/6/18: Santa's Christmas Rescue v1.2 ReleasedSo, Puckdropper and I actually did a bunch of bug fixing for Santa's Rescue back in January and had it released on the forums since then. I meant to update the website with the latest version but haven't gotten around to it until just now.
Fixes for version 1.2:
Bug Fixes / New Features: - Player no longer falls through platform on jump that goes off screen. (Puckdropper) - Player can no longer jump above screen. (Puckdropper) - Jump height slightly increased. (Puckdropper) - Error handler now attempts to reset working directory on - file errors. - gameRootDir variable at beginning to config and set working directory. - Highscore name length increased. - Level is now redrawn if player dies from enemy - Bonus present added worth 500 points. - Fixed bug where game would finish after level 16 even though there are 25 levels. - Fixed bug where highscores aren't asked to entered after game is completed. - Jumping under platforms higher than player now works correctly. - Fixed issue with enemies clipping floor sprite edges away while moving. - Levels reworked to include new bonus presents.
Direct link to projects to download: Qbasic Projects Page
12/25/17: Happy Holidays! New Qbasic Game Released!!I've challenged myself to create a full blow Qbasic game in a few days just to see if I could do it. I ended up creating Santa's Christmas Rescue. This game comes with 25 levels pre created as well as a level editor where you can create you own levels to play. There's still some bugs to be had but I wanted to make sure at least the first version was released on Christmas. Enjoy!
Direct link to projects to download: Qbasic Projects Page
12/20/17: A Bunch Of Lost Files FoundI was going through some old backups of past computers today and ran across a ton of "lost files" that I forgot even existed or thought were lost to time. When the GeoCities page went down for good in late 2009, there were some files and updates that have been lost so some of these files may have previously been on the page at some point 10 years ago. Anyway, here's a run down of what's been added.
- Millennium Crisis: Latest 2004 Version (10/9/2004) - Full source and update past engine demo!
- Falling Demo - Demo of falling off a cliff? Has graphics so that's something...
- Classic Guess My Number - Non corrupted version found from 2003.
- Erik's Game - 3/25/04 - Win32 C++ unfinished game that had potential.
- ASCII RPG Source - 8/30/05 (Win32) - C++ RPG Win32 source of Linux version.
- Classic Guess My Number - 4/9/03 (Win32/DOS?) - C++ guess my number game.
- Matrix (2 Versions) - 2004 (Win32) - C++ Useless Matrix screen demos.
- Medieval Battle - 11/23/2005 (Win32/DOS) - C++ SDL "game". Completely unfinished.
- Numb - The Stupid Adventures Of JollyR Unfinished Version - 03/09/2005 - Qbasic - Early unfinished version
12/15/17: NeChat - Continued Updates and TestingI've been continuing to work on the NeChat project in my spare time. I added the login panel on start up so credentials are no longer hard coded. Application also now configures its REST client using the "NeChat Locator Service" which is basically just a JSON page on this website that points to the current location of the NeChat REST services. Bugs and such have been addressed as they come up.
I created a projects on my GitHub page under the Git repository for the server code and the client code to keep track of new features and bugs. This is like what I did for MCr3. I feel like I was starting to lose track of things and needed some organization to keep myself focused.
Testing wise, I ran a test over the internet between my friend and I and we were able to both log in and chat with each other using the latest build of the client application pointing to the current NeChat services I have deployed. I also opened up alpha/beta testing on the forums and created a few accounts. So far we haven't tested yet but I'm interested in how that goes as well.
More updates as they come... and if they don't before the holiday...
11/16/17: NeChat - Many more updatesSo, I've still been working on the NeChat project. I have working server side code (Core, mySql DB and REST services). I also have created a pretty user friendly (I think) REST client for the client applications to consume. The test client application I was writing previously was a good test bed (java.swing) but I started feeling like I was putting too much work into just a test client. I have now switched over to JavaFX.
The client will now log in on start up. Currently this is hard coded, I need to create a login panel for it as well extra config values to store save logins on next start ups. When the app starts up, it will take the username/password and attempt to generate or retreive an authentication token from the web services. If this passes, it will continue loading the application. In the future, if this fails, it should revert the user back to the login panel to attempt to enter their credentials again.
New JavaFX client can now display the user's current buddy list as well as show the message history with each buddy and send/receive messages back and forth with each buddy. It actually works surprisingly well! I'm happy with how things so far are going. (Just started creating the JavaFX client tonight). I'm by no means a UI/client application person. My job is backend server development so this is more or less new/rusty ground for me.
Anyway, I'm excited with how things are coming. Here is a screen shot of the current client. Click the image to enlarge. If you're interested in the code and such, check out the github link in my previous update for the latest!
10/30/17: NeChat - New Project!I felt like I needed a little break from MCr3 as I could tell that my momentum has been slowing as time went on. I haven't forgotten about it and will continue to work on it, I just have created a new (very different) project to help keep me from getting burnt out.
The new project is a cross platform chat service written in Java. This service is similar to AIM used to be or something more modern like Skype is today. I don't actually have a practical purpose for this project, I honestly was just curious if I could create it. The idea was created because lately Skype has been crashing constantly and the advertisements are down right annoying. I figured maybe I could make something homebrew. :)
So far I have a mySql database created with a few tables for users, messages, tokens, buddies, etc. There are also jobs (events in mySql) that run to clear out any expired auth tokens so the DB doesn't get filled up. The service will issue a new token if the old is expired will not accept expired tokens so these old expired tokens should be cleared out.
I also have the server side REST service where you can authenticate to get your authentication token (used to for all requests as well as your creds to make any calls). Other calls include sending messages to users, getting messages sent to you from other users, adding and removing users from your buddy list as well as probably some others that I don't remember at the time of this post.
I have also started working on a simple client application that consumes these REST services. So far my simple client can authenticate and retrieve the auth token. After this is done, you can make a call to get your buddy list. I basically just started hacking away at this tonight so expect more in the coming days.
I went with Java again for its cross platform-ness. Also, custom platform specific clients should be easy to make as they are basically just a UI for dealing with the REST service.
The Java area has been added back under the projects section. I haven't created individual projects page for each yet but the place holder is there. Currently each project just has a link to my corresponding GitHub repository as well as a short text blurb about it.
GitHub Link to NeChat Project Repo: https://github.com/shamrice/nechat
10/21/17: MC_Reboot ver 2 (C++) Update again?Oh boy, this is even more unexpected. I was able to get the original MC_reboot v2 to build on my Windows computer. I was able to build a Win32 version of the code after much tweaking. I had to lose all in game text because SDL_ttf was being too much of a pain to be worth porting over. So if you head over to the C++ project page for Millennium Crisis, you will find a link to a download where you can try out the latest version of that old code if you have a Windows computer. If you are using Linux, I recommend trying the sources from GitHub as they should work without issue.
Direct link if intested: Win32 Binary Zip Download
10/19/17: MC_Reboot ver 2 (C++) Update. WHAAAAAAAAAAAT!?!Yes, that's right. I was digging through old files on my Linux desktop and ran across the old Millennium Crisis reboot #2 that was written in C++ about 2.5 years ago and is the inspiration for MCr3. I stopped working on that version because I managed to come across a bug where pointers were reading data from other memory locations and gave up on fixing it.
It's a shame I did that because I was able to fix the issue I was having in under an hour (had to get refamiliar with the code base). The issue was created from when I set up the NPC's "talk string" from the config file, the C String I was setting was not terminated correctly so later when that string was called in game, it would read past the correct memory location and read garbage data. I fixed this as well as an issue with the first screen test drops not showing up. (They work too!)
Revisiting this code after so long is interesting. It's much further along than I remember and it's actually not bad at all. The latest Java version is definitely more polished and better written but the C++ version isn't by far garbage. There's actually some functionality that it has that the Java version doesn't have. There are area drops that are visible that you can pick up as well as multiple inventory item types that can be used. (These will be coming to MCr3 eventually). The biggest difference in gameplay between the two at this point is the Java version has multiple weapons you can equip, more polished inventory interaction, the ability to run as well as almost all sprites are animated where the C++ version does not have any animations but the rest is there to some extent.
Well, if interested, I've updated the GitHub repository with the fixes. Probably the last fix this version will see which is some what bitter sweet.
Link to Git Repo: https://github.com/shamrice/mc_reboot
10/18/17: MCr3 - Refactoring, Inventory and moreMore progress has slowly been made on MCr3. I had to do a large refactoring to the code base to clean up how different objects interact and inherit each other. That was somewhat of a pain but it's looking much better now. I fixed the bug mentioned in the previous update about attack direction facing as well as a bunch of others I don't really remember.
The inventory is now functional. You can go into your inventory and equip/unequip items (the equipped item is shown in green). You can also drop items you no longer want. After and item is dropped, it can no longer be picked back up. Right now, the game pauses when you enter the inventory as navigating the inventory area uses the arrow keys (which share the responsibility of moving the player). I'm not sure if I'm going to keep that workflow or not. I may change it so that the inventory is accessed in real time instead.
Finally and probably least importantly, I added working pause functionality. The gameplay area gets masked with a transparent sprite to dim the area and the worded "paused" are displayed in the center. The message box is also updated with text for when the game is paused or not. This pause screen is also currently shown when the user is using their inventory.
9/26/17: Some more work done on MC reboot #3 (MCr3 from here out)Things have progressed a little slow with MCr3 lately with work and such being busy. Mostly what I've been working on today has been related to the asset configuration building classes and methods. I've had to completely refactor that section of code so that you don't have to specify every single sprite possibility with values in the config file, only the ones that you need. The ones that are not configured will be set to a default sprite value for the asset. I also rewrote how the sprite animation configuration is built and actually fixed a bug I didn't know was there. (Basically, all sprites would have the animation frame duration length for the right facing sprite). Not really interesting work, but it makes my life easier down the road when I want to add additional image assets. (Or if someone wants to mod the configs down the road to their own liking.)
The next ticket I'll be working on is a bug fix for your player only facing right when attacking. That hopefully won't be too much of a pain. After that, I'll finally get to adding the functionality to interact with your inventory. More info as it progresses or stagnates. :)
9/16/17: One of my first Qbasic game source files found.One of the first games I wrote, "Zelda" which was a text game based off the Nintendo series back in the late 1990s, I have recovered the source code to the game. For years and years this site has only ever had the compiled version available. (Basically since existing in '99). I added the BAS file to the Qbasic files section. There's actually nothing really interesting to be found it's just cool that I found the file. Boarding and Doomed are also from this "pre-NE" time frame from the mid to late 1990s. They can be found in the lost files section if interested.
9/12/17: Another MC UpdateStill making headway on the MC project. I'm happy with how it's coming along. So far, nothing has been too much of a headache to implement when I go to take care of outstanding tickets. The only thing slowing me down really is having some real good dedicated time to work on it. I'm not sure what I've added since last update but now there is a save and load feature, dead bodies show a looted sprite when you take their item. Stats are shown on screen... lots of fun stuff. Again, check the project on my github (link in previous update) with list of tickets completed, to-do and currently in progress.
In an NE first, I decided to take a quick video of the current gameplay in my little sandbox world I have been using. The video demonstrates attacking enemies, picking up items and coins, getting exp and leveling up, showing stats, running vs walking speed, saving and loading even after game restart. There's probably some more but I'm not sure at this point. The video is short so please just take a quick look if you have time. Thanks!
9/2/17: Millennium Crisis UpdateSo, I'm just updating to let everyone know that I've actually worked on the latest MC reboot today. I've added some basic experience system as well as statistics for the player, enemy and weapons. Not really much to say here, you can follow the project on GitHub if you want to see up to date changes as well as my prioritized ticket list. ( Link Here)
8/31/17: A few links fixed... and not much else importantI fixed the few links I have in the links section to actually open in the whole browser window instead of getting stuck inside of the links frame.
I've had family visiting most of August so I haven't really had time to mess with any projects so mcuh since the last update. Things have quieted down a bit here so hopefully I can get back on track either later today or sometime tomorrow after work. (Fingers crossed, we've all heard this spiel before... :D)
8/14/17: More Millennium Crisis Reboot News! (Surprise!)I'm happy to report that (in my free time) the latest reboot is still going strong! There are now player and enemy attack and "hurt" animations. There is a messaging system that displays information below the play area about attack damages, how much you've been hit for, what you've picked up, etc. I've also started working on an inventory system. Right now you can pick up items and add them to your inventory. The inventory is displayed on the right hand side of the screen. I still need to make further implementations of that system. Finally, I've created a configurable logging system. You can either log to a file or the console based on what you set in the config. (I know that's super exciting to have. haha) I still need to start working on an experience system and player / enemy stats.
I'm sure there's more that's been done that I've missed. I've created a project on my GitHub page for the project as well as wrote up some tickets so that I stay focused and on track hopefully.
Probably in the next update, I'll include some more screen shots because as of right now it's not so much of a leap in visuals from the 8/4 update that I feel that it's necessary. (Though I have increased the resolution of the game from 800x600 to 1024x768).
8/6/17: Happy Way Late 18th Happy Birthday NE!I just realized I completely missed the 2/20 birthday of this website! Over 18 years now as a website! Wow does the time fly!
8/4/17: Millennium Crisis Reboot Again In Java???Yeeeeep... Now that I removed the Java section from the website, I decide to rewrite the latest MC reboot in Java instead of C++. Go figure. At the current moment I'm about just as far as I was with the last reboot but the code and expansion of the game is still managable unlike it's C++ counterpart even though it could use a decent amount of refactoring. Dynamic area loading, dynamic asset configuration, collision detection, player attacks and enemy damage are all there right now in some form.
I currently don't have a name yet and at this point I'm not sure I want to call it Millennium Crisis like the last ones. On my GitHub, I've been using the name "ZombieAttack". For right now, I'm using most of the same assets from the C++ version in this alpha stage. (I did make the current projectile a slightly modified version of the freeze thrower projectile from Duke Nukem 3d though. :) )
A few current screenshots: Click Here
GitHub: Click Here
I also finally fixed the original Millennium Crisis demo from 2004 zip file to include the necessary dependencies in the zip file. You can find this in the C++ file's section. I'm not really sure why I bothered to do this. That code is now over 13 years old but I guess it's helpful if someone ever wants to play it and doesn't have a version of Visual Studio 6.0 still installed (Who does???) as the only compiled version seems to be a debug build and not a release build.
2/16/17: Site Style UpdateI've completed a quick redo of the way the site is styled. After updating a few times this year I got sick of having to update every single page if there was a change to the site navigation or the header. Now all navigation and header is stored in a main index page with all sub page content loaded into an iframe (where you're reading this now). I also removed the inline style attributes to all the divs and finally moved them to a style sheet. Page is also now resizeable and the font is slightly larger. Files and Projects links now open drop downs to the different sections like they were originally intended to do 11 years ago. Community link moved to the top of the navigation list.
I added the previous layout to the NE Archive as I'm not sure how much this new style will change from its current status in the future and from a behind the scenes perspective, this is a large change in how the site works.
2/13/17: New addition to NE Archive.Not really that important of an update but I found a version of the NE website that was on GeoCities in the internet archive. It's the version of the site that I used to hold updates when the main site was down from 2006-2009. I've added it to the NE Archive for those curious.
2/2/17: Possibly the biggest NE Qbasic Projects Update in the Last Decade.By how little this site is updated, that title isn't really saying much... but this is actually a big update! There's too much information to post in this little news block on the site to do any of it justice. In short, there is currently latest (unfinished) releases of Wry 3, Hellbent and Terror that were prevously either thought to be lost forever or forgotten about and never added to the site.
Check out the Qbasic project's sections for each one for full detailed updates as well as links on where to download if you would like to try them out.
1/30/17: Updated C++ projects page with Millennium Crisis RebootI finally updated the C++ projects section with the latest information on the latest MC reboot I worked on in early 2015. I added some screenshots, links to code on GitHub and the contents of the posts I posted on the forums related to it.
I've also started to work on removing the unused sections of the website to keep things more focused.
8/22/16: Rebel and Frenzy are now available in the Qbasic Files Section.With the help of Puckdropper, I was able to get my FTP client working correctly again. I've updated the Qbasic Files Section with downloads for both Rebel (complete with level editor) and the Frenzy demo. Just a heads up, Frenzy doesn't have any code in it controlling the game speed so if you're using DOSBOX, be sure to spin down the CPU cycles to make the game playable. Rebel doesn't suffer from this same issue.
Also, I just realized that the first update on this updates page is talking about these two games. So much for "Hopefully not years from now...".
8/17/16: Trying to get up to date...So, I'm currently in the process of trying to get Frenzy (the top view game mentioned previously) and Rebel up on the site so that they can be downloaded. They were never finished but are probably at least worth checking out more than some of the other stuff on this site :) I'll try to get the Millennium Crisis reboot up here as well (C++) even though that currently needs a rewrite as well.
I've also started playing around with Qbasic again. Today I've been working on the Doors idea again just for practice. I've created a basic screen where you can add/remove windows and resize, window, minimize, maximize, move and title them. I still need to add program shortcuts and it I'll most likely call it done. Who knows though, my attention span is awful at stuff like this. Link to image
More to come as it comes!
3/14/12: We're back in business baby!Well after years of not taking puckdropper up on his offer to host my website. I finally did it. Right now the website is basically in the same exact state it was back in Oct '06. That should be close enough to the time when it went down to work. I'm currently working on getting the site back up and functional before attempting any type of real changes. :)
Also TWO... that's right TWO new Qbasic games are in the works. A top view action game called "Frenzy" where you need to avoid the bad guys while getting to the goal and "Rebel", a side view action game similar to a Mario platform game but with it's own twists. I'm also going to include a level editor of some sort into Rebel as it already currently uses external level data files to populate the levels. More info as it develops. Hopefully not years from now...
Finally, I'm removing Java from the site as I don't think there's ever been any traction there.