There are times in the creation of any significant piece of software where one encounters difficult problems. These may range from practical, to architectural, to algorithmic; some days it seems that there is no end to the challenges that can crop up when writing nontrivial programs.
Recently, I wro…
Recently, I wro…
One of the things I've been thinking about heavily for the Epoch language is the way constructors work. Epoch does not have null values or default initialization, so all constructors require explicit arguments to satisfy the type requirements of a given variable.
Here's a quick example:
Here's a quick example:
structure foo…
I cobbled together a few spare moments over the past week or so and did some work on Epoch Release 11. There's a lot of goodies coming in this release, including (finally) restored support for doing full Win32 applications. You can also expect more-or-less functional garbage collection, and a gener…
So my talk for GDC 2011 has been approved, and is now officially announced. I'll be co-presenting with Damian Isla on scripting languages and AI, with my half of the talk emphasizing the use of domain-specific languages for game development and AI in particular.
If you were on the fence about attend…
If you were on the fence about attend…
Epoch Release 10 is now available. Read all about it (and post your feedback) on the RFC thread in the General Programming forum.
Enjoy!
Enjoy!
Thanks to an overabundance of poor time management, I've dug up a couple hours and managed to get some serious hacking done on Epoch Release 10. A lot of operator syntax has been added, so most of the goodies like pre-increment/post-increment, operate-and-assign, and unary operators are working now…
Today I'd like to take a few minutes to delve into the implementation of Epoch, specifically the way that I've implemented conditional expressions.
I'll be investigating the entire process from the ground up: from the way the parser works, to the way the code is compiled, and finally, how the virtua…
I'll be investigating the entire process from the ground up: from the way the parser works, to the way the code is compiled, and finally, how the virtua…
In my tiny fragments of spare time, I've started implementing support for conditionals in Epoch. In a nutshell, this means support for if/elseif/else constructs.
Like most things in Epoch, conditionals are implemented as entities. (If you missed it, there's a full treatment on how the entity system …
Like most things in Epoch, conditionals are implemented as entities. (If you missed it, there's a full treatment on how the entity system …
Finally got infix operators working correctly with precedence rules. Along the way I managed to implement support for parenthetical expressions. That means that this entire unit test now passes:
//
// INFIX.EPOCH
//
// Tests for validating infix operator behaviour (particularly operator precedence)
// A…
Managed to dig up a few hours to play with Epoch this weekend; so far the results are promising. I've rewritten the function parameter validation routine so that parameters are validated after the closing parenthesis for the function call, rather than one at a time as they are parsed. This makes it…
For those of you on LinkedIn, I've started a group specifically for tracking Epoch's development. I'll be posting updates and such there, and discussions specifically related to the language are more than welcome.
Feel free to link me (just mention you're from GDNet so I don't accidentally spam-fol…
Feel free to link me (just mention you're from GDNet so I don't accidentally spam-fol…
I've finally gotten around to clarifying and recording my thoughts on the entity system that underlies the rewritten Epoch toolchain in R10.
You can read the full writeup in the Epoch wiki article for the entity system.
You can read the full writeup in the Epoch wiki article for the entity system.
A decent day's work on Epoch has netted some substantial improvements. Not only do function return values work again, but I added something that wasn't even supported in the old code: full expressions in return value initializers.
Since that's probably total gibberish to everyone except me, it means…
Since that's probably total gibberish to everyone except me, it means…
It always amazes me what I'm capable of debugging in my sleep. For instance, I had a nasty problem with infix operators in the Epoch parser that I just couldn't sort out last night; grab a few hours of shuteye, and bam, I woke up knowing exactly what to do about it. Got to love being productive and…
So after many moons of procrastination and generally being ridiculously busy with Other Stuff?, I'm back in business with the Epoch Programming Language Project.
While I was away, I completely forgot that I had basically started a rewrite of the entire compiler toolchain to handle some of the nifty …
While I was away, I completely forgot that I had basically started a rewrite of the entire compiler toolchain to handle some of the nifty …
Disclaimer: I'm two rum-and-cokes (heavy on the rum) into the evening, and working through a triple Jameson as I write this. Expect lots of vitriol, some unpleasant language, and some very informative and honest information about the real world.
Why Game Studios Use C++
AKA: Why You Shouldn't
One of t…
Why Game Studios Use C++
AKA: Why You Shouldn't
One of t…
Decided to forgo a timely dinner to hack around on the Droid a bit more; after about a half hour of investigation and some minor reverse engineering, I tracked down the details of how the native Android SMS messaging app displays its little message counter (indicating how many messages your text sp…
After a couple hours of toying around (interspersed liberally with some napping) I finally finished rewriting the MassText Android app to use the ListView widget for managing the contact list. It's a bit more performant with large contact lists, far more visually integrated and consistent with the …
One of my weekend projects lately has involved hacking around on my shiny new Motorola Droid, which has proven to be some excellent fun. Despite the fact that I'm compelled to suffer through Java and (shudder) Eclipse, there's a lot of enjoyment to be had in fooling around on a new platform.
Android…
Android…
I've had my eye on the Android platform for a while now, largely out of the same kind of vague half-interest that lightly glues me to everything remotely technological that might have a game written for it. A few years ago I procured some random spare parts from GPS units, a microcontroller, and so…
My last entry here talked about a method for merging multiple navigation meshes in 6-degree-of-freedom space for creating navigation environments from individual components. As is often the case with real software development, a couple of weeks worth of refinement has gone into the method, and some…
Six Degrees of Pain in the Ass
One of the more interesting aspects of working for Egosoft is that, unlike most game projects, we deal with a full six degrees of freedom. Our games take place in space, so you can go up, down, left, right, forwards, backwards... and you can pitch, yaw, and roll. Your …
One of the more interesting aspects of working for Egosoft is that, unlike most game projects, we deal with a full six degrees of freedom. Our games take place in space, so you can go up, down, left, right, forwards, backwards... and you can pitch, yaw, and roll. Your …
5040x1050 pixels, my friends. 5040x1050 pixels.
One Intel Core i7 860 CPU at 3 GHz.
4 GB of RAM.
ATI Radeon HD 5800 Series GPU, sporting 2.5GB of VRAM and a glorious triple-head monitor adapter.
2 TB of SATA III/6Gb hard drive storage.
Gigabit Ethernet.
950 watts of power.
Windows 7 Ultimate 64-bit Editio…
One Intel Core i7 860 CPU at 3 GHz.
4 GB of RAM.
ATI Radeon HD 5800 Series GPU, sporting 2.5GB of VRAM and a glorious triple-head monitor adapter.
2 TB of SATA III/6Gb hard drive storage.
Gigabit Ethernet.
950 watts of power.
Windows 7 Ultimate 64-bit Editio…
Gather round, kiddies, it's time for more tales of Epoch!
In my last little blurb here I mentioned I'm rewriting the entire project, more or less from scratch. The vast bulk of existing logic has been scrapped, and the architecture is changing very heavily.
Before I dig too deep into the details of t…
In my last little blurb here I mentioned I'm rewriting the entire project, more or less from scratch. The vast bulk of existing logic has been scrapped, and the architecture is changing very heavily.
Before I dig too deep into the details of t…
So, GDC coverage. Better late than never, right?
Keep watching that link, kiddies! Six more articles to go!
Keep watching that link, kiddies! Six more articles to go!
I've put a lot of thought into this over the past couple of weeks, and it's taken quite a bit of waffling on my part to settle on a course of action. I'm posting this largely as a way to force myself to commit to a plan, moreso than simply putting the information out there.
Epoch, as a project, is g…
Epoch, as a project, is g…
As is customary post-GDC, I'm here to brain-dump my thoughts about the year's conference and generally regroup and strategize for next year.
I can sum up this year's key learnings in one simple nugget of wisdom:
Don't get sick.
Seriously, staggering around leaking brain lubricant and hacking up odd fl…
I can sum up this year's key learnings in one simple nugget of wisdom:
Don't get sick.
Seriously, staggering around leaking brain lubricant and hacking up odd fl…
So, another GDC come and gone; my flight out of here doesn't leave for another 11 hours, so I've got to find some way to burn some time. Fortunately, I'm in San Francisco, where ways to burn time abound; unfortunately, I'm sick as a dog and can barely leave the hotel room bed. So it looks like I'll…
Wrapped up the AI summit this afternoon; had a great dinner with the big luminaries of GDC's AI contingent. Unfortunately I feel like I'm coming down with some kind of illness, so I will be passing out in my hotel room shortly.
Tomorrow is going to be awesome; I start off with a session on StarCraft…
Tomorrow is going to be awesome; I start off with a session on StarCraft…
So, GDC is getting all set to kick off tomorrow morning; it's really confusing to be writing this on a Monday night and not yet have any conference-related things to talk about.
See, I have to write something on Monday night, because the rest of the week, by the time I stagger back to the hotel, dri…
See, I have to write something on Monday night, because the rest of the week, by the time I stagger back to the hotel, dri…
Advertisement
Popular Blogs
Advertisement