🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
OK, so just out of curiousity, has anyone actually downloaded the Epoch VM yet, or am I just spitting into the wind here? [grin]
Speaking of Epoch, I've added a rudimentary integration between the VM and external C DLLs. With a couple of minor additions, Epoch programs will be able to call directly …
Speaking of Epoch, I've added a rudimentary integration between the VM and external C DLLs. With a couple of minor additions, Epoch programs will be able to call directly …
I decided to go ahead and release the current Fugue source code as it stands, for two reasons. First, the sooner I get feedback on the system, the better. Second, I'm looking at a couple of very busy upcoming months for work, so my available time for working on Epoch related stuff is going to shrin…
True to form, I just can't resist the urge to fit in just a little bit more polishing and feature work on Epoch before the first release. Right now I'm putting together the syntax error handling.
As anyone with experience in language implementation knows, handling syntax errors intelligently require…
As anyone with experience in language implementation knows, handling syntax errors intelligently require…
It took a long evening's work, but I've finally gotten a parser functional and actually generating VM operations from source code. At the moment it's a little bit shaky because I'm not terribly familiar with boost::spirit yet, but at least it runs.
At this point I have the guessing-game program bein…
At this point I have the guessing-game program bein…
I have officially fallen in deep love with boost::spirit. In the space of a couple of hours, I threw together a working grammar for parsing the "pure" Epoch syntax example I posted earlier.
Currently it just parses the syntax, without doing any semantic analysis. I expect that actually getting the s…
Currently it just parses the syntax, without doing any semantic analysis. I expect that actually getting the s…
I decided to bite the bullet and go ahead and begin rudimentary syntax work. This is for a couple of reasons.
First, I'm running out of things to add to the language without getting into highly nontrivial areas like type theory, dynamic memory management, and so on. Second, it's such a pain to do an…
First, I'm running out of things to add to the language without getting into highly nontrivial areas like type theory, dynamic memory management, and so on. Second, it's such a pain to do an…
Well, it's official - Epoch has its first fully implemented and operational program!
It's just a boring number guessing game, of course, but it still counts - as it should after the amount of effort that's gone into the VM just to get this tiny bit of code running.
The source that created that game i…
It's just a boring number guessing game, of course, but it still counts - as it should after the amount of effort that's gone into the VM just to get this tiny bit of code running.
The source that created that game i…
I've finally gotten back around to working on the Epoch virtual machine again. In addition to a handful of arithmetic operators, I've added some key elements:
- Code block support (the value of a block is the value of the last executed statement)
- Function support (code block + parameter list)
- Library fu…
So for the past several weeks I've had this glorious, functional MS-DOS 6.22 machine running happily under my coffee table. It's provided several hours of blissful retro gaming awesomeness.
But, as with any good story, there's a dark side.
I have no mouse.
This rules out a lot of the games that I want…
But, as with any good story, there's a dark side.
I have no mouse.
This rules out a lot of the games that I want…
Alright, ladies and germs, go get your controversy hats and make sure they're snugly mounted on your head - I'm going to drop a bombshell here.
Documentation in General
Everyone should hopefully already agree that documenting one's code is a good practice. Interfaces for libraries or self-contained m…
Documentation in General
Everyone should hopefully already agree that documenting one's code is a good practice. Interfaces for libraries or self-contained m…
For this edition of my series Brain Giblets, I'd like to share a little debugging technique that has served me excessively well over the years.
The great thing about this technique is that it is literally applicable to any situation - regardless of what debugging tools you have available, or even wh…
The great thing about this technique is that it is literally applicable to any situation - regardless of what debugging tools you have available, or even wh…
Further progress on the laser-R2-D2 mod project. I mounted the laser and toggle switch successfully, and rebuilt the R2 unit more or less successfully. It still works properly (woohoo!) but the head has lost its full range of motion, and the laser stopped firing after a few particularly nasty head-…
If you haven't already, take a moment to read the Brain giblets round 3 entry, including the comments.
The idea was brought up of using comments rather than actual function call stubs, and then exploiting IDE tools like global find or Visual Studio's Task List to locate and flesh out those comments …
The idea was brought up of using comments rather than actual function call stubs, and then exploiting IDE tools like global find or Visual Studio's Task List to locate and flesh out those comments …
Observation: There are two basic ways to handle planned future functionality in your code. For example, suppose you are adding scripting language bindings to a partially finished engine. The engine currently does not have sound effect support, but it will soon. Your choices are fairly simple:
- Don't …
Observation: It is tempting to let your software fail in messy ways. For example, consider a case where a fatal exception is thrown from your code. This exception is displayed to the user along with some possibly-useful debugging information.
Now, suppose that there is a certain situation in which t…
Now, suppose that there is a certain situation in which t…
I was coding away earlier, innocent as can be, when I suddenly was struck by an errant thought. After scolding it for interrupting my blissfully thought-free coding session, I took a closer look at it.
Turns out it was a fairly deep and important truth. In fact, I nearly came over here to write a jo…
Turns out it was a fairly deep and important truth. In fact, I nearly came over here to write a jo…
Today I quadrupled my chances of getting terminal cancer.
This may sound like a difficult feat, but in all honesty it was pretty simple: I just held a soldering iron to a lump of plastic for a while. The toxic fumes still tinge the ambience of my flat, and I now have a dull headache.
Still, I conside…
This may sound like a difficult feat, but in all honesty it was pretty simple: I just held a soldering iron to a lump of plastic for a while. The toxic fumes still tinge the ambience of my flat, and I now have a dull headache.
Still, I conside…
I finally got motivated to start working on the R2D2 droid project again. I had a couple of ideas, and ended up picking a fairly simple one to start out with: I'm going to give R2D2 a laser eye, Terminator style.
Being a total electronic toy geek, I naturally have a few laser pointers laying around.…
Being a total electronic toy geek, I naturally have a few laser pointers laying around.…
I knew it had to happen eventually... but now that it has, I'm kicking myself for the choices I made.
Some of the old-timers around here may recall the old Freon raytracer project that I worked on several years ago. The goal was to develop a software reference implementation of a hardware raytracing…
Some of the old-timers around here may recall the old Freon raytracer project that I worked on several years ago. The goal was to develop a software reference implementation of a hardware raytracing…
I finally sorted out the combination of connections needed to get the on-chip debugger working for the microcontroller. I have no idea what I'm doing differently now than before, but I can run the IDE and step through code in the ROM at will.
This means that I finally have some serious potential for…
This means that I finally have some serious potential for…
It's been a long time ago now, but I've finally gotten around to digging up some of my electronics stuff and working on my concept of a tiny game console.
The motivation for this was a certain birthday present I recently received. Needless to say, I played with the droid as it shipped for about an h…
The motivation for this was a certain birthday present I recently received. Needless to say, I played with the droid as it shipped for about an h…
First, some background
For the past several weeks I've been working on a sort of embedded domain-specific language project. It's designed to help create simple event-trigger based missions and general game content. The details of the language itself are more or less irrelevant; they were already ver…
For the past several weeks I've been working on a sort of embedded domain-specific language project. It's designed to help create simple event-trigger based missions and general game content. The details of the language itself are more or less irrelevant; they were already ver…
Every team eventually faces a fundamentally difficult question: who is in charge?
Someone must take responsibility for the game's overall direction. If there are multiple programmers, someone needs to set up some technical standards and practices, handle decisions like what libraries and tools to us…
Someone must take responsibility for the game's overall direction. If there are multiple programmers, someone needs to set up some technical standards and practices, handle decisions like what libraries and tools to us…
Game Programming and Krystal Burgers1
Since something interesting is going on at work, I thought I'd share. Well, interesting and something I can discuss publicly, which is a rare combo.
The last couple of days have been spent in an intense bug hunting frenzy. Earlier this week, I was working on a sm…
Since something interesting is going on at work, I thought I'd share. Well, interesting and something I can discuss publicly, which is a rare combo.
The last couple of days have been spent in an intense bug hunting frenzy. Earlier this week, I was working on a sm…
I goofed around a little bit on Fugue today and ended up with a nice new extension. Rather than atomic operations like addition/subtraction/etc. having side effects, they are now simply r-values, and in order for the program to do anything, you have to invoke an assignment operator. So now the unit…
My GDC coverage is all wrapped up, so at Drew's suggestion I'm doing a quick postmortem of the entire GDC experience. I know it's a couple weeks late, but I've been focusing on higher priority stuff lately since I technically wasn't there for press coverage in the first place [wink]
Good Things
Good Things
- Overa…
In my spare hours here and there over the past week, I've started doing a little something which I hope will be of interest to the larger GDNet community. It's been a long time since the Epoch language project thread hurdled its way up to one of the longest threads in GDNet history, but now somethi…
The Problem
Often when working in C++ I find myself in a situation where I want to be able to quickly drop some formatted output in a specific way. My usual standby is to use a lot of intermediate stringstream objects, like this:
Often when working in C++ I find myself in a situation where I want to be able to quickly drop some formatted output in a specific way. My usual standby is to use a lot of intermediate stringstream objects, like this:
void OutputMessage(const std::wstring& message);
void FooFunction()…
Advertisement
Popular Blogs
Advertisement