Jump to content
  • Advertisement

Extrarius

Member
  • Content count

    10572
  • Joined

  • Last visited

Community Reputation

1412 Excellent

About Extrarius

  • Rank
    (Blinded By White Theme)

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. You mention that walls store which sectors are on each side. Do sectors store which walls make it up or which sectors share walls with it? Another approach I thought of is to use a simple breadth-first search to choose which sectors to process, starting with the one the player is in. Something like (semi-python):sectorsToRender = [GetSector(player.location)] while (not bAllColumnsFull) and sectorsToRender: nextSector = sectorsToRender.pop(0) if not InView(next): continue Render(nextSector) sectorsToRender.extend(nextSector.linkedSectors) The "InView" check being optional, of course, and you'd need some way to check whether a sector was already processed. For the latter, you could use a bitmask for speed, but for the actual list of sectors to render, a pointer or index list (cyclic to make popping free and to avoid multiple allocations) would be better so you can maintain order.
  2. Have you tried using (or do you use) some kind of "potentially visible set" which, for each sector (or group thereof) lists which other sectors might be visible from that sector? You could store a pointer in each sector to a list, and share the list between many sectors to save memory (possible over-estimating visible sectors in order to join similar-but-different lists), and that could significantly reduce the processing required when you have a map with distinct areas - a Z shaped hall could divide the map in two, such that only half the world is rendered depending on where you are in the hall.
  3. Extrarius

    Collision detection makes the world feel solid

    Does your collision handling allow you to slide along walls by walking into it? For spatial partitioning, you could use the already-existing concept of sectors - generally, objects can only collide with the walls of the sector it is in, unless it is crossing a line between sectors, in which case it can collide with walls in both (or more) sectors.
  4. Extrarius

    Enlarging the world

    If you don't have Michael Abrash's Graphics Programming Black Book (Special Edition), I suggest getting it. It uses x86 assembly, but it is _full_ of tricks and optimizations relevant to rendering engines from Wolfenstein 3d to Quake. Despite the fact that many of the tricks are specific to the x86 architecture and instruction set, I'd be surprised if you didn't find something useful in there for this project. However, you'll definitely need to get familiar with x86 assembly to get the most out of the book (which shouldn't be a problem since Intel offers the instruction set books as free pdfs). Edit: Using google, I found Graphics Programming Black Book here on gamedev in pdf form, so I guess you don't even need to buy the book..?
  5. Extrarius

    VGA output for the dsPIC33 VDC

    Quote:Original post by benryves Part of my reason to sticking to monochrome 320?240 is that the graphical LCD that I intend to use as the primary display device is a 320?240 monochrome one. That and memory becomes a bit of a problem for higher resolutions or coloured displays. Some microcontrollers can be connected to external RAM but these tend to be fiddly SMD parts that I don't really have the equipment to work with. That said, I would be quite interested in getting into programmable logic anyway; I can imagine how I could build a better VDC out of discrete logic and RAM chips but it would end up being physically very large and a pain to solder together. Do you have any recommendations for inexpensive FPGA equipment (if such a thing exists?) Even then I'm not sure it would be available in DIP. [sad]You are correct in stating that FPGAs are rarely available in DIP packages, so you might want to avoid them if you plan on making your project into a soldered circuit board. However, there are many kits designed around FPGAs that you could use if you're fine sticking to solderless prototyping. For example, on the inexpensive end (for FPGA kits) at $200 there is Cyclone III FPGA Starter Kit which has everything you'll probably ever need out of an FPGA (including plenty of i/o pins exposed). There are several similar options available at Terasic spanning to much higher costs if you want fancier outputs and onboard peripherals, etc. Another approach you could take (especially if you'd rather work with components) is to use adapter sockets like those a futurlec.
  6. Extrarius

    VGA output for the dsPIC33 VDC

    You might find it 'better' to do DMA to the PMP or to PORTB because that gives you 8 or 16 pins toggling at once. You'll need a bit of memory to store an expanded scanline (from whatever bpp you want) and a few cycles to expand each line before displaying it, but it also gives you the option of a palette for VGA (expand, say, 2 or 4 bits to 5:5:5). Really, though, using an FPGA as a video card for the uC probably makes the most sense. Using even a low-pin inexpensive chip would allow you much more complex logic interfacing with reasonable ram buffers, etc.
  7. Extrarius

    Combining a Z80 and an ATmega644P to boot CP/M

    You might want to look into EEPROM instead of flash, since the latter doesn't require erasing at all (but most chips I've looked at do support page, sector, and chip erase if you want to use it). The main downside is the 1Mb (128K x 8) seems to be the normal max EEPROM size, and that much costs US$3-5. It sounds like that shouldn't be a problem for your project.
  8. Yea! I finally found the tutorial on how to use Xilinx's ISE program to turn VHDL into bitfiles that can run on the avnet Spartan 3A Evaluation Kit[1]. I followed the included tutorial that sets up a counter and sets the LEDs to display the top bits of the count, except I made some simple changes to make sure I understood everything. The only material change I made was to use a clock multiplier to increase the frequency from the 16 MHz oscillator to a much nicer 100 MHz. I'm so used to python and C++ that it took me a while to get used to the pascal-like syntax of VHDL, but aside from that (and the fact that the ISE software is not netbook friendly - way too much HD access and the UI doesn't fit on the 600-pixel-high screen), the process and results were pretty cool. Ok, there is one more annoyance - that I can't find any drafts (or other legally free versions) of the 2008 VHDL standard. I like having the standard for a language I'm working in, but I don't quite like VHDL enough yet to spend nearly $300 as IEEE, ANSI, et al are asking for the pdf. I've forgotten pretty much everything I knew about digital logic design, but I located my college text on the subject (one of the very few good books from my classes) and have been reading through it. I also picked up an interesting-looking book on processor design in a brick-and-mortar store, and then found out it was one of the best-rated books on the subject on amazon, which is nice to know. I need to start reading it sometime soon. I think I've decided on my first big project to do on the FPGA in order to really familiarize myself with the hardware design and development process - Core War! I've already done a lot of software work with the game, so I'm pretty familiar with the instruction set and mechanics. I'm thinking I'll make a CPU that runs a game of Core Wars using the 'nanohill' rules - mainly because the board I'm using doesn't have SRAM so I need to make the whole game state fit into the BRAM in the FPGA. While almost any rule set would fit into the BRAM once, I'd really like to make a large array of Core Wars CPUs running simultaneously. Once I get that, I can load some known warriors from nano hills into the flash ram, and compete my creations against a full match (with all 142 starting positions against every opponent), which gives me a good way to benchmark a given warrior. Finally, with that capability, I should be able to make an evolver that can (by rough calculations) go through as many as a billion evaluations a day. If I'm lucky, I'll rule the nano hills a few days after I finish the project =-) [1] It is the least expensive FPGA board I've ever seen. It's missing the fun things the more expensive kits have, like ports for VGA and audio, but for a mere $50, it's a great way to see if you're interested enough to spend more money on such hardware (and you can always use the pins it exposes to connect your own ports). It also comes with a a programmable-system-on-a-chip and a programmer for it, which is a nice bonus (especially considering that the board just for that PSoC is almost $200).
  9. Extrarius

    c is faster

    Lately, work has been satisfying my software development drive, so I've started getting back into another hobby - electronics. I dug out an old 'lots of projects in 1' kit from my closet and sent out a few orders to various places (primarily mouser, amazon, and ebay) to start creating a full kit to work from. After receiving the first few things I ordered, I started playing around and wired up a 'white noise' generator based on avalanche noise. I built the circuit 5 times, but it never seemed to work for some reason when I made it on the kit's breadboard. I finally got out my separate breadboard and power supply, and lo and behold, it worked wonderfully (apparently when a schematic says you need a voltage source of a certain strength, it might say that because fewer volts will not work properly =-). Yesterday my oscilloscope arrived, and it was rather awesome to example the white noise wave on it. Since my oscilloscope isn't officially calibrated, I decided I'd like to generate some signals from my sound card and use the oscilloscope's measurement capabilities to check the frequency, and all seems well so far (at least up to 8khz, which isn't far for a 250MHz oscilloscope). Now I'm working on a signal generator program in python that will also give me something awesome to look at on my oscilloscope. After that, maybe I'll start working on some kind of game on the oscilloscope. Analog computers are neat =-) oscilloscopes can be vector displays Now that this is a new month (and my "fun money" budget reset), I'm considering buying an FPGA board. I can't decide whether I cant to spend a bit more and get a fully functional board (from diligent) that has RAM etc already built in, or whether I'd like to get a bare bones board (specifically, the $50 "Spartan 3A evaluation board" board from avnet that has a few buttons, a bit of flash memory, and lots of headers). Since I have no soldering experience and SRAM doesn't seem to offer many DIP options, I'll probably go with the more expensive board, but, then again, learning to solder would probably help quite a bit with some of the projects I want to do eventually - breadboards have tons of parasitic problems with high-frequency circuits, and with the FPGA, I have several video projects I'll get around to eventually.
  10. Extrarius

    STM8S-Discovery review and tutorial

    This post inspired me to look up some of the devices that caught my interest long ago, and I'm happy to see that Digilent now has FPGA boards with built-in VGA ports (something I asked them for when I first discovered their low-cost FPGA boards). They've also brought the capabilities up and prices down quite a bit. At $80, I might be able to convince myself to "waste" money on something like that soon =-) As much as I enjoy assembly on the PC, the hardware logic for tiny devices has always interested me more than programming for them.
  11. Extrarius

    Numbers and Words

    Quote:Original post by rip-off What is the traditional gift for that anniversary?We went with the traditional exchange of rings for number zero.
  12. Extrarius

    Numbers and Words

    I had my 0th wedding anniversary yesterday (September 6th, 2009).
  13. Extrarius

    Things Leading

    Life is good, but busy. The new job is working out great. Working on interesting, challenging problems is much better than tedium. On June 8, 2008, I met an amazing woman and spent over 4 hours enjoying conversation with her over lunch. On June 18, 2009, I presented her with a ring, and she accepted it. On September 6, 2009, she becomes my wife. Also, I just recently discovered an awesome programming game titled Core Wars. It is loads of fun, yet frustrating. I'm building my own MARS and an evolver based on it, but MSVC bugs are getting in my way. At least, I believe it is an MSVC bug - g++ and comeau both compile the code just fine in strict standards modes.
  14. Near the end of last year, I found out that my employer was closing the branch I was working in, and that I could continue on until the office was actually closed in December. After we (the employees of the closing branch) found out, we made an argument for a later date that coincided with a contract deadline, and it was accepted by management. The office still had to close because the lease was up, but they allowed us to take what equipment we required and to continue working from home. I've been doing that since mid December, but the extended deadline is fast approaching. For that reason, I've been looking on various job listing sites for a while now, and found many jobs I could do but only a few that sounded interesting. I'm more interested in low- and intermediate-level programming, while most jobs were for developing database front-ends and other simple business GUIs in Java or .Net languages. Of the few jobs that sounded interesting, several required high level security clearances that I don't have. Just recently, I found a listing that combined the best of all worlds - a software reverse engineering position that didn't require security clearance. After reading the posting, this posting instantly rose to the top of my list as an interesting, challenging position. I submitted my resume to this new-found first choice on Feb 2, heard back from them on Feb 4 with a skill assessment test, and returned the test on Feb 6. The next week, I received the response that they would like to fly me half-way across the country to DC for an interview on Feb 19. I was impressed with their interview technique and blown away by the description of the working environment in the office I'd be joining. I also felt I did well and made a good impression on the many people I spoke to. At the end of the interview, I was told I'd hear back within a week one way or another. Yesterday, Feb 25, I got an offer letter that includes a >50% raise from my current position, a week more vacation, and several other improved benefits. Today, I signed the forms and gave my current employer notice of my resignation in 2 weeks. Life is good. =-)
  15. Extrarius

    Expression Evaluation in Z80 Assembly

    Quote:Original post by benryves [...]I'm not sure if the technique used is obvious (I'd never thought of it)[...]Have you read Compilers: Principles, Techniques, and Tools? There is a new edition out that is probably far better, but I think you'd find even the old edition most helpful in writing compilers. It's one of the few books I've seen that covers the theory well - far too many skip theory almost entirely and end up being little more than code dumps between paragraphs of implementation details.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!