Jump to content
  • entries
    73
  • comments
    133
  • views
    82,995

Getting settled in!

Sign in to follow this  
potatohead

270 views

Man oh man! Moving sucks! Well, getting a new and bigger home doesn't, but basically everything else does. One never realizes just how many little tech bits one has until they are all yanked and stuffed into a box! Basically nothing works anymore. My ReplayTV does not work with the new Directv sat receivers, DSL was hosed until today, computers are gonna take forever to reconnect, on and on and on...

 

I think I'm going to be looking for a new 400. Hooked my old one up and it's flaky now. Tried reseating the chips and still it just goes nuts after about 10 minutes. The combination of old age and being moved has probably done it in. The 7800 still works great though! Most of the other computers doom won't be known to me for a while yet. Hoping the SGI isn't in any trouble or that's a trip to ebay for sure. Can't live without that one.

 

While I'm here, I suppose I should post a coupla ideas I had for later:

 

Was thinking about Ooze a bit and reread the comments collected so far. It's not quite a game, though it is fun. One thing that's been getting to me is the use of the joystick for controls. Mostly I did this because the Batari Basic environment limits keep the paddle from being part of the equation. I'm torn between taking the game into assembly land, adding the paddle and polish and just doing something new. Controls are at the heart of this because the lack of them prevent me (or so I think --feel free to chime in) from getting the core game elements where they need to be for a viable game. So, last night while unpacking my Atari stuff, I bumped into my driving controllers. I'm thinking those might be just the trick for Ooze.

 

I want the game to be fast like Kaboom! That's where the trance comes into play and is the core, for me at least, of what makes really great old 8bit games. The joystick just isn't going to cut it because with speed comes the need for really fast player interaction with a far more dynamic and aggressive Ooze. Having not touched the thing for a while, it seems more like a great Bb tech demo than it does a game. (And the solid comments reflect that if taken as a whole.) For those of you out there, starting on the game journey I'm currently on, I highly recommend putting your work aside for a while. When you come back, your perspective is far more objective and valuable. You really get sucked in while working on the project. Core goals can get lost in the shuffle, thus blocking the creative process. At least I've discovered this to be true for me. Take that for what it's worth!

 

Using driving controllers with Bb should be dead simple and they work a lot like paddles, but for the lack of absolute positioning. Maybe that's enough to get the experience where it should be. So I'm going to try that and see where it goes.

 

My gut says it will be a coupla more weeks before things are in order enough to begin hacking on the game again. I'm gonna move everything over to the SGI. This will slow the project at first, but it will be worth it. If you have ever used an SGI, you know about the IRIX environment. It's insanely addictive and very pleasing to work with for long periods of time. On SGI, the emulator scene is good, but getting dated. I think it's time to compile the latest Stella and see if that's viable. If so, Atari game development on the platform will be solid again, which will make me very happy. There is something cool about using a 64Bit platform to develop for old 8bit systems. (That and the excellent screen fonts --easy on the eyes.)

 

I'm not sure how I'm going to do controller interfaces however. Might be keyboard / mouse only for the moment. If push comes to shove and I need to do something else, I'll just use the Linux box for that and display the window on the SGI.

 

Sorry for length, but that brings me to another "Why Unix and the X-Window system kick so much ass it's not even funny" post. I'm not sure the lions share of computer people fully understand just how big of a gift the X-Window system really was in it's time. Heck, that's still true today for those in the know.

 

Basically it comes down to true multi-user computing. Not user switching, or a limited remote desktop environment, terminal server, etc... but true multi-user. That's what Unix has been from the get go. When networked computing became a reality for the masses, Unix and X were there in all their glory ready for what should have been a great time. Instead we got single user win32 boxes.

 

Well, most of us did anyway. Those few who were running Unix in networked environments with the X window system took a different path...

 

X allows any user on any machine to serve graphics to the user on the display they are located at. It's like VNC, but for any number of users and not just for the whole desktop, but for any application. It's possible, for example, to have the machine you are sitting at handle input and display graphics while another runs your window manager and a third machine to run the application. The implications for the desktop are powerful, if not so obvious. For me, this means I can use an SGI (once I get it hooked up again) for my primary desktop, and display Linux programs on it as well, thus having one nice environment. I will typically script the access to resources running on other machines so that my favorites are only a coupla clicks away. Done right with shared network storage and the average user will have no idea they are running stuff across a batch of machines instead of just one local machine.

 

Sounds goofy I know, but it's very cool. Let's say my local machine is a bit slow (which my old SGI is), but a remote machine is much faster. Once I've asked for the program to be displayed on my box, it's pretty much like having a faster machine without the hassle of changing boxes, KVM, VNC, etc... From an IT standpoint this has serious advantages as well. Say you have a group of users who all need a very strong machine 10 percent of the time. Do you buy 10 strong machines, or buy one and let them share it as I've described above? Another example lies with shared applications. In this day and age, many software companies do not let their licenses float, depending on the single user win32 system to force folks to buy lots of copies of their software --even for casual users. With the X window system, this is not necessary at all. Just install one and let people share it to their local desktops as if they actually had the application running on their local box.

 

Finally, there are lots of solid computing choices besides the sometimes problematic client-server approach. Client server is great, but does require some tinkering on both ends to work correctly. The more robust choice of application server can eliminate these problems. Have a difficult or expensive application? Put it on an application server and let all your users run it from there. One copy of the software, one configuration, etc... Or, maybe you want to manage some data. Keep it out of users hands. With the X window system, you can have sensitive data located on a server with the managed application that interacts with it. Users are limited to only those things the application allows when running over X, because they are not running code locally! There is no need for them to even be able to see the data, but through the application itself.

 

Ok, that's enough. Best get connecting or I won't be doing any of this stuff!

Sign in to follow this  


4 Comments


Recommended Comments

Both paddles and driving controllers need to be read as part of the kernel, and I don't know how much flexibility BB gives you in that area. But I do agree that there are certain classes of games where a paddle or spinner is superior to a joystick because you aren't limitted to a single speed.

 

Sure X is nice, but it often doesn't play nice with the native windowing system. It's also heavy on the network; so much so that I will VNC into a local system instead of running the X-Server on my PC. (And that's the exception, 99% of the time I stick to SSH shells.) Window Managers, fonts, focus handling, and window controls can also cause headaches.

 

Multi-user is good, but tough to get right from a security perspective unless you're really hard-nosed and dilligent. You also have to prevent users and rogue processes from gobbling up the CPU, RAM, and disk space impacting the other users & processes.

Share this comment


Link to comment
Both paddles and driving controllers need to be read as part of the kernel, and I don't know how much flexibility BB gives you in that area. But I do agree that there are certain classes of games where a paddle or spinner is superior to a joystick because you aren't limitted to a single speed.

 

Sure X is nice, but it often doesn't play nice with the native windowing system. It's also heavy on the network; so much so that I will VNC into a local system instead of running the X-Server on my PC. (And that's the exception, 99% of the time I stick to SSH shells.) Window Managers, fonts, focus handling, and window controls can also cause headaches.

 

Multi-user is good, but tough to get right from a security perspective unless you're really hard-nosed and dilligent. You also have to prevent users and rogue processes from gobbling up the CPU, RAM, and disk space impacting the other users & processes.

 

My thought on the driving controller was to treat it as a joystick, and nestle the reads in the game logic code. There is enough time, I just don't know if there is enough consistancy. Should be entertaining to find out. At least with the driving controllers, small timing differences won't result in jitter when the player is not interacting with the controller. However, there might be jitter on motion as well as a general inability to read the device fast enough to track state changes. We shall see.

 

Native windowing systems are a problem, if they are other than X window ones! That's a big reason why I run Linux / IRIX as my main desktop. On win32 Exceed is just great and interacts nicely with win32 desktops, but it's pricey...

 

I've not had any real trouble with network traffic. Guess the networks I work on are fast enough. Low latency is important though. Agreed on focus issues. Having the background I do, the default win32 focus drives me nuts! Should be able to interact with a window without having it pop to the foreground... point to focus and click in border to raise is my favorite --particularly when doing admin with lots of shells. Ordinary users hate this however, so I use Exceed and the native win32 window manager. That way the focus behavior is what they expect. A font server is a must, once done it can be left on and running no worries there.

 

Managing processes is a nasty one sometimes... A lot of what I have done over the years involves a couple of high-end applications. Once their behavior is known, a few scripts to assist program start and exit do wonders.

 

It's a tradeoff to be sure. Given the current mess win32 makes, I'll take these problems any day of the week over registry coruption, dll conflicts, and virii / malware. Things in win32 land are nicer these days for sure. I do manage both and find myself thrashing in win32 land far more than I do Linux / Unix land. IMHO, it's easier to know exactly what the machine is doing in Unix land than it is under win32. Too many things lumped together and too difficult to limit what a user can and cannot do. For win32, the core permission set and management tools recently released are actually quite good. Problem is most developers have not taken the time to code their stuff in a way that makes sense given the needs of administrators today. It will catch up, but it's just not there yet...

 

On the matter of security I've got problems on both sides of the fence.... It's just tough today, no getting around it. I tend to have strong outer layer security, then different subnets internally depending on the user needs. This is one thing X is nice for. It is possible to have one box locked down tight, only allowing an application server to serve it's application on managed data. Users can't touch anything on it, except via X. For engineering CAD data, for example, this is just fantastic in that the same system can run for years without any real need to manage it's interactions with the rapidly changing client environment and it's potential contaminants. You give up some nice integration, but you get robustness and consistancy in return. Not a bad tradeoff, IMHO.

Share this comment


Link to comment
Both paddles and driving controllers need to be read as part of the kernel, and I don't know how much flexibility BB gives you in that area. But I do agree that there are certain classes of games where a paddle or spinner is superior to a joystick because you aren't limitted to a single speed.

The DC does not require kernel time. However, I have had some trouble reading it in bB - I could never get the assembly routines posted by Thomas to work, so I wrote my own rather inefficient (but 100% working) routine and posted it here:

http://www.atariage.com/forums/index.php?showtopic=87310

 

In other news, the bB kernel now has paddle support in exchange for Missile 1. I have been doing some bB kernel hacking lately, and in doing so I've been finding cycles where I never thought I would. The SBX instruction is proving to be indispensable.

 

For example, there have been requests for a kernel with no blank lines between playfield blocks. This is also now an option by removing missile 1. However, in doing so, I found free cycles, which was enough to read any of the four paddles, so I decided to make paddle reading a feature of the no-blank-lines kernel option. Well, it's not perfect, as the paddle is read only every other scanline, so on the horizontal axis this translates to roughly a 2-pixel resolution (but should be adequate for most games.) You can also read multiple paddles, but must do so on alternate frames.

 

The driving controller is worse for a game like Ooze, as the DC has just 16 positions. However, I posted a demo a while back showing how one can measure the angular velocity of the DC and move a variable number of pixels accordingly. The end result is workable, if a little choppy. It takes a while to get accustomed to the control, but once you are used to it, it can feel much like a paddle. Demo is here:

 

http://www.atariage.com/forums/index.php?a...e=post&id=41269

 

Note that the demo must be played on real hardware with a real DC. It will not work as expected in any sort of emulator, as these limit the DC to a fixed angular velocity.

Share this comment


Link to comment
Both paddles and driving controllers need to be read as part of the kernel, and I don't know how much flexibility BB gives you in that area. But I do agree that there are certain classes of games where a paddle or spinner is superior to a joystick because you aren't limitted to a single speed.

The DC does not require kernel time. However, I have had some trouble reading it in bB - I could never get the assembly routines posted by Thomas to work, so I wrote my own rather inefficient (but 100% working) routine and posted it here:

http://www.atariage.com/forums/index.php?showtopic=87310

 

In other news, the bB kernel now has paddle support in exchange for Missile 1. I have been doing some bB kernel hacking lately, and in doing so I've been finding cycles where I never thought I would. The SBX instruction is proving to be indispensable.

 

For example, there have been requests for a kernel with no blank lines between playfield blocks. This is also now an option by removing missile 1. However, in doing so, I found free cycles, which was enough to read any of the four paddles, so I decided to make paddle reading a feature of the no-blank-lines kernel option. Well, it's not perfect, as the paddle is read only every other scanline, so on the horizontal axis this translates to roughly a 2-pixel resolution (but should be adequate for most games.) You can also read multiple paddles, but must do so on alternate frames.

 

The driving controller is worse for a game like Ooze, as the DC has just 16 positions. However, I posted a demo a while back showing how one can measure the angular velocity of the DC and move a variable number of pixels accordingly. The end result is workable, if a little choppy. It takes a while to get accustomed to the control, but once you are used to it, it can feel much like a paddle. Demo is here:

 

http://www.atariage.com/forums/index.php?a...e=post&id=41269

 

Note that the demo must be played on real hardware with a real DC. It will not work as expected in any sort of emulator, as these limit the DC to a fixed angular velocity.

 

As usual, nice work Batari. I can't wait to begin toying with this stuff again. It's a ton of fun compared to the nasty systems I deal with daily...

 

Many thanks (I think) for creating such a wonderful timesink!

Share this comment


Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...