Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Wednesday, July 11, 2007

New Debugging and Stability Tools

It's been a few days since I last posted, mostly because I've been caught up with a few things, and quite frankly couldn't find anything I really wanted to sit down and write. I still have more then a week before I will be able to sit down to code a bug project so I've been slowly working at some functionality for dynamic to make it more stable, and I have some more things planned to help with debugging. The most notable change I did this week is to write some code to cleanly shutdown instead of crash. As long as the game doesn't hit an infinite loop then there is no reason why the game wont shutdown cleanly, saving all player and world data. This was implemented using a java shutdown hook. The hook allows you to create a thread that will be started when the application is terminated. For more details check out the Java Runtime Class.

The next major debugging tool I plan on writing wont happen until sometime after my next two 'weekend projects'. I am considering writing some code that would dump the state of every variable in the game when it exits prematurely (crashes). This would give me a snapshot of everything at the moment of the crash, and would be very beneficial for spotting the causes of bugs. Most importantly it will help me diagnose issues that occur when I am not around to see them, which will become an increasingly important issue as dynamic gets to the point of release.

Wednesday, June 06, 2007

Fat Jar Plugin

Between yesterday and today I made an attempt to port my code over so that I could run it up on the server space that slayn.net has been so helpful to provide. In the process I had to generate a java jar file to upload so that dynamic could be a standalone program and run independent of eclipse. My first few attempts failed, primarily due to dynamic's need for the MySQL java classes that I have installed, and I have been unable to successfully set up my java classpath.

I ended up finding a cool plugin for eclipse that generates jars and packages in the prereq java classes it needs. The tool seems to work great so far and has been very helpful. You can get the Fat Jar Eclipse Plug-In at http://fjep.sourceforge.net/ Hopefully this might help other java developers too.

-Toraux

Sunday, February 11, 2007

Gates Work Nicely

I finished coding gates today. Really thinking about it I should have been able to get more done. I'm thinking about moving on to the next thing on my list tonight, but its hard getting motivated, mostly because I'm not sure on the best way to do it. Back to gates. So gates open and close at the pull of a lever. These levers can be anywhere, and each one can store a single gate to control. Possibly in the future each lever might be able to control multiple gates, but this seems to be enough for the moment. The ideal use of this system is in castles for example, where defenders can open and close the gates from inside, making an assault more difficult. This should add another whole dimension to attack and defend type situations where a faction wants to take a strategic point from another.

The next task to complete is an improvement on how my immortal edit room, and other internals handle selecting and creating new rooms. Basically right now I have several hardcoded select statements, and every time I want to add a room type I need to tweak this list. I would prefer to be able to code it in one place and let the code handle differentiating between the different types. I'll likely use the java.reflexive packages that I used for the commands performance monitoring command. Hopefully it won't be too hard and I can get through this tomorrow maybe. I also have plans to do ladders and the up and down directional commands this week.

I spent a lot of the rest of my time today working on an article I plan on posting tomorrow or Tuesday on the free model of online game publishing. I plan on submitting it to the GameProducer.net Carnival of Game Production. Its definitely one of the longer pieces of writing I've ever written outside of school essays and research papers, hopefully it will be enjoyable to read.

Until tomorrow,
-Toraux


Wednesday, October 11, 2006

Sun Microsystems Needs Better Documentation

So last night I was messing around with some of my code, I decided to load up my Java into a jar and give it a try outside of eclipse. Of course my normal classpath setting wouldn't make Java understand that the database resource I needed was available so it wouldn't run. However there is this nice utility called Java-config that lets you set the classpath.... so lets use that. Wrong! Java-config's classpath options are all depreciated so they don't do anything. All the documentation online points to these as the ways of fixing this problem. Thankfully however I stumbled on a forum post that made sense.

If you can't get a class to load on your classpath with Java 1.5 and later: make sure its in your /opt/sun-jdk-1.5.0.08/jre/lib/ext/ directory, where the sun-jdk-1.5.0.08 is your version. Its similar under windows but I can't remember the exact path but it should be something like C:\Program Files\Java\Java-version-here\lib\ext.

I hope this helps someone else save 50 minutes of their life.
-Toraux

Thursday, September 07, 2006

Getting There

I'm almost back to normal. Got several packages left to install, and some backups of config files etc. Unfortunately I think I lost my todo file. Ill find out once subversion is installed and I open up my repository.

I figured out my Java problems yesterday, and I'm quite proud of myself. With Java transitioning between version 1.4 and 1.5 there is some complication i the installation process. The Java-config-1 script... used for setting your generation 1 virtual machine had a bug.. trying to reference a variable that didn't exist, so I cracked it open and commented out the line, and now I have Java. Eclipse is currently installing in the background, making writing this quite a pain in the ass.

Guess there isn't much else left to mention, ill hopefully have an update later.
-Toraux

Tuesday, August 29, 2006

Post #100

As the title indicates, we finally made it to #100. A lot has passed since last October when I started taking this seriously and started my specification. I have toiled to hit quite a few thousand lines of Java so far with lots more to be accomplished. Every day I get a chance to code I feel like I move forward ever so slightly. Sometimes its the progress in the game, other times its personal progress towards becoming a better programmer. Someday I will finish and there will be joy had by all.

While software development is fun, I think it would be far more fun to have the game completed. I wouldn't mind waging war or hunting. Changing my world and living out a possibility that I cannot live out here in real life. Players being able to 100% change their world and influence the course of game history.... thats my kind of entertainment. To get to this point and get listed among the great computer games, MUDs, and mmorpgs of our day and next there is much left to be accomplished.

The next half a year or so will include some pretty exciting events:

* I will be looking to recruit a marketing wiz to help get the word out and create a brand and image that people will associate with this game.
* I plan to dust off my several year old python prototype and have a fun day or weekend where players will be able to see a tiny glimpse into what the final game will be like.
* Major testing will commence next January.
* A new blog layout will be set hopefully within the next 6 months, followed by a brand new website.
* A new name for Dynamic MUD, a world to go with the engine.

Anyone who might be new here might want to take this time to get on the site change notification page down on the right side bar. Anyone who is interested in testing or get some early info on the prototype fun day should check out the tester group link on the right side bar as well.

Thanks all for your continued support!
-Toraux

Monday, July 24, 2006

Restructuring DataSystem

I am currently restructuring the data storage system. This will hopefully be more robust and less prone to stupid errors and make the data more easily changed when the game isnt in operation.

As for testing ive had some people ask me when he next test is... most likely I will plan at least one more chance before I go back to school, probably some weekend in mid to late August. This test would be geared mainly to stress testing the newly rewritten and enhanced code and be less of a test of new features.

In other news I realized today that Java 1.5 contains functionality to track time in nano seconds. Hopefully this will make my testing code much more accurate!

Anyway gotta sleep, work tomorrow.
-Toraux

Saturday, July 22, 2006

Slow and Steady wins the Race

I got a bit done today. The theme now seems to be slow and steady wins the race. Every time I tried to code and I rushed it things sucked down the line. I am now refactoring a lot of my stuff and even possibly rewriting the data storage framework to make things more efficient and robust. New features have been few and far between, but once this core engine is done things should start pouring out.

I installed my new CD-RW drive this morning, definately recommend Lite-On drives, well labeled, cheap, good companion software, and an easy install. Also cleaned up the inside and organized the wires etc too.

After that I upgrade to Java 1.5 and tried out this generics thing. I have to say it makes my code a lot cleaner in a lot of places. On the otherhand the over complication of java isnt exactly a great thing either, but at least it works. My next few objectives over the weekend are mainly refactoring and cleaning up core things. Making things well rounded and good for future use is of the utmost importance. Hopefully the core will be done by the end of August or September, but at my current rate of development that might be too high of an aim. Guess we'll need to wait and see. Anyway, going to sleep now and hopefully get up early tomorrow and hit a lot of stuff, I lose next weekend for a bit of a vacation so I need to try and keep up the pace now.

Later,
-Toraux

Wednesday, July 19, 2006

Goings On

My newer scheduling system seems to be working out ok. Im making slow and steady progress. I have plans for the next few weeks to finish up some minor improvements and then overhaul some of the base systems a bit.

At work I decided to take it upon myself to write a program to do AM Studies for me.... basicly we go to the FCC website enter in some Coordinates and a radius and it tells us which radio stations are in that area and we print it to a pdf. On Tuesday I spent about 5 hours doing 120 sites. Why do this lame stuff by hand? :P I should have a program written to download the websites and print directly to pdf without any human interaction within a week. Already today I learned about Java Generics, a relatively new feature that will make my code a lot tighter after the overhaul... basicly like the C++ template feature. Anyway going to do some other stuff now bbl :P

-Toraux

Monday, April 24, 2006

Descriptions Done

Pretty much finished up the basic set of class descriptions. My next goal is to learn how to use JUnit and refresh my memory on the use of Packages and referencing objects in Java.

I really would like to get some more traffic to the site, got lucky today and picked up another handful of hits which really increased the revenue for the day. Anyone who would like to link to this site is more then welcome too. In fact please do, if anyone wants to exchange links I am more then happy to do that too.

Well gotta get some sleep, class and an interview with Verizon Wireless tomorrow. Yay Engineering.
-Toraux

Thursday, April 20, 2006

Designing

So I think im pretty much back. Made a diagram out of the core classes that will make up the basis of the Dynamic MUD Engine last night. The plan includes 18 classes so far, and this number could quite easily increase with some of the other ideas I plan on working into the core engine. The full engine that will run the game should then consist of potentially hundreds and hundreds of classes derived from this core set to represent every being, room, and item in the game.

Starting to get a plan together for a possible website in the nearish future. Looks like we'll be making an attempt to get the rest of the initial 100bucks from google out of this blog if possible, and use that to pay for the first year of real hosting. That means if you know people who might be interested in this blog give them the url! Hopefully then the new website would be able to bring in enough cash to pay for incorporation to get the project release in the later stages. This process should then allow us to make enough cash selling the initial shares to small time investors or people really interested in the project. All of this a result of us getting people to show up on the site.

The new site will include tons of information about the game, and plans. It also will have this news blog and a huge set of forums for discussing future features and options. I hope to make player feedback a big part of the design process for advanced features, balancing, and possible story elements.

I plan on finishing the core engine general design stuff in the next couple of weeks. I also plan on doing some research into some Java features that I might be needing. And I also plan on looking into learning how to use JUnit before I start coding. JUnit will allow me to set up tests for every function and class so I will be able to test the whole project on a whim at the press of a button. Should let me test the whole system after changes to make sure it doesnt break anything.

I really cant wait until this game is ready for release, just dreaming about some of the planned features and options make me drool. Gaining control of a nation, raising legions of player and npc troops to fight for your cause and go on a campaign to take of the known world. One word.... fun. Well guess ill post back in a few days with some more progress. Until then.... tell people about dynamic!

-Toraux

Monday, April 10, 2006

Dawn of Comeback Approaching

About a week and a half to finish up this object oriented project (Damn you C++ and your conducivness to bad coding practices). As soon as the project is done or almost entirely done I should be moving back to dynamic. I am planning on spending the first few weeks back redesigning the operation of the core software, designing packaging and interfacing, writing up documentation and designing tests. I plan on using JUnit to allow for a more persistant and consistant development and validation. I also plan on using the object oriented nature of Java to my advantage to make Dynamic a lot easier to code and manage.

The first few weeks are already claimed by design and minor research. After that I plan to do a class a week for pretty much the entire summer until the core Engine is complete. I think I will be coding a mini tag game to go on the core engine soon after that to be a more comprehensive test of the design. (All this while on Coop, teaching my class, and any other personal projects that come up.) Hopefully the core package and the Engine will be done by the end of the summer, guess we'll just need to wait and see.

Hope to post back by the time I start design.
-Toraux

Tuesday, January 10, 2006

Early Start

Well looks like i've made up my mind. I am bypassing most of the R&D stage. I decided over the past few days that I will use Java. Python will still be on the table for helper utilities that I dont want to spend a long time developing. I will also be using MySql as the database that will store most of the game data, including the world, players, items, etc.

Earlier today I coded the basis of the input module which will read player commands. I intend to have a bunch more core stuff done by the end of the week. Hopefully culminating in a server that can accept players, validate passwords, allow for simple communication and command parsing as well as logging data. Hopefully all will go smoothly.

Anyways thats all I have for now. Later.
-Toraux

Thursday, January 05, 2006

Spec Revision

I started the process of specification revision today. I have a plan for which sections I will work on each day, if I manage to keep up with the schedule ill have gone through every section within about a week and a half.

I intend to start messing around with various coding tools and languages to start getting a feel for which language to use. I got a file dictating which things I need to work on. I plan to test Java, C++, D, and python as well as some database options including mysql and postgre sql. If anyone else knows of any other free database systems feel free to clue me in. Think ill be going then and ill start hitting up some code testing today. Later.
-Toraux