In order to not let the blog wither, I think I'll post some notes I took during my stay in Milan. I won't bother you with the details of these past months, as I've been beyond busy... perhaps super busy. I've been working on a data relay system for an international company (first big project, yay!), and I don't feel like enumerating the crapload of snags I hit along the way. I've been using WCF, for the curious. Nice technology, if confusing at first like most MS frameworks.
Anyway, there we go. I'd love to see some feedback, if any.
--
Parallelism means performing many operations with none waiting on another.
Scalability means opening up parallelism over separated but cooperating processing units.
Persistence means the capability of a state to be saved and restored in its entirety
at any point in time.
In order to achieve parallelism, data must be immutable, there must be as little data contention as possible, and no locking, as a corollary of the previous statement. In order to achieve scalability, operations must be serializable, and so their results, so that they can be shared across different parallel processing units. The cost of sending data across a communication channel must be less than the sum of the processing costs on a processing unit; this implies fast communications and smart work-stealing heuristics.
In order to achieve persistence, the selected storage must be able to create a perfect copy of the data being sent to it, save it in a lossless way and retrieve it later; this sequence must be able to happen at any point in time to prevent sudden data loss.
--
The data upon which operations are performed and the operation themselves must be local, that is they must be in the same processing unit. Whenever a state* happens to be partially shared across two different processing units, the one with less workload will receive a full copy of the necessary data and carry out the involved operations. This can be seen as an implementation of the concept of "ghosting".
* A state is a collection of operations to be performed towards a specific result, along
with their determinant data.
Data can also be proactively shared with processing units that don't yet need it. Sharing in this case means transfering a clone of the data until the data is either not needed anymore or completely trusted to another processing unit. Proactive sharing might happen when data gets close to the processing unit boundaries, which can be both abstract or physical (different machines linked by a connection). Data should be sent only when it changes.
I hope I'll be able to post more.
Showing posts with label Me. Show all posts
Showing posts with label Me. Show all posts
Sunday, April 19, 2009
Wednesday, March 4, 2009
Oooh.
My best virtual croatian friend Joe Basic and I have opened a Google Code page.
http://code.google.com/p/rainweaver/
The Rainweaver Framework (it's a codename, whatever) is a set of libraries for game developers. You can read about our evil plans on the first page. There's something you can download, as well. Let us know what you think, of course!
If you know C# and you're the reliable type, consider joining us. We're busy with work, university, and all the rest, so it's a long term project.
Thanks for reading.
http://code.google.com/p/rainweaver/
The Rainweaver Framework (it's a codename, whatever) is a set of libraries for game developers. You can read about our evil plans on the first page. There's something you can download, as well. Let us know what you think, of course!
If you know C# and you're the reliable type, consider joining us. We're busy with work, university, and all the rest, so it's a long term project.
Thanks for reading.
Monday, January 19, 2009
Work, work, work
I know you've been missing me. I've been missing you too - blog of mine.
Anyway, it's been a super busy period with super big things to get done. For instance, I wrote a Dynamics NAV text fob parser in order to create a versioning documentation against two databases. It's been both a pain and a pleasure. I had a few "eureka!" moments worth all the stress I went through in order to deliver the tool in a timely manner. I also managed to understand parsing / compiler theory a bit more. You never stop learning.
I also took the opportunity to brush up my design patterns knowledge. I've been messing with MVC and today I've been reading up about MVP - the former being model-view-controller and the latter model-view-presenter. Curious? I'll post a pretty scheme I made tomorrow. It's pretty, I swear. Edit: and here it is:

I learned some new tricks in these months, and I got to the point where you have to actually sit down and try to make everything snap in place.
Thanks for reading.
Anyway, it's been a super busy period with super big things to get done. For instance, I wrote a Dynamics NAV text fob parser in order to create a versioning documentation against two databases. It's been both a pain and a pleasure. I had a few "eureka!" moments worth all the stress I went through in order to deliver the tool in a timely manner. I also managed to understand parsing / compiler theory a bit more. You never stop learning.
I also took the opportunity to brush up my design patterns knowledge. I've been messing with MVC and today I've been reading up about MVP - the former being model-view-controller and the latter model-view-presenter. Curious? I'll post a pretty scheme I made tomorrow. It's pretty, I swear. Edit: and here it is:

I learned some new tricks in these months, and I got to the point where you have to actually sit down and try to make everything snap in place.
- MVP? World editor. Absolutely.
- Object persistence? Game server. Finally I realized the true form of the Entity System (more on this later).
- System.Threading? Do more with less. Locality of data - as few shared states as possible, lockless when you can, otherwise don't bother.
- System.AddIn? Useless, use the MEF and do yourself a favour; however, you learned that proxies and abstractions are a good thing to decouple the contract from the implementation - and if you're smart (like the System.AddIn guys) you have a version tolerant framework without even breaking a sweat. And here comes a platform-independent engine API...!
Thanks for reading.
Monday, October 20, 2008
Of Shame
I'd like to crystallize in a blog post the wisdom of an australian "developer" named "openglaussie", as seen over at Gamedev.net.
Please note how he also edited his posts later on. I'm not sure I feel like commenting on this right now.
Edit: well, while I'm waiting for the report I'm working on to finish crunching numbers, I guess I can spend a few minutes writing down how I feel about this.
That people of other countries have a low consideration for italians is nothing new. It's a sad reality, not shared across everyone of course, but it does happen. However, we're talking about game development here and I'll keep it at that.
I think Italy never ever had the possibility to grow in the gaming industry. We simply don't have a business for that. Many bright minds fly away from this country towards more fertile fields, where they can actually work and make a good living out of their talent. The idea of a game dev convention is both a good and an irrelevant news. A good news, seeing as there's always the need to spark a start, but irrelevant, since I really doubt it'll help investors create business. It's all about earning a living eventually (for big companies even more so). We had a few good productions in a distant past (Milestone with Screamer and a few other racing games, or Lightshock with Pray for Death which was a very nice fighting game at the time), but then it all stopped.
I really think it's hard to start competing with multi-millionaire companies ex nihilo. I also think we wouldn't be able to create a Cave Story clone (which is an amazing game, a one man effort worth gold) even if we really wanted. Why is it so? I don't know, all I know is that they can convention all they want, but that's not gonna help unless someone starts changing the business. And this is something not happening overnight.
I for one have always been interested and secretly in love with game programming. I never found anyone to share this passion of mine with where I live. The italian game dev site reminds me of the desert, with a few, lone explorers along its path.
But then again, I can't complain. I for one am not doing much to change this. I cannot.
I guess nothing good will come from spaghetti eaters, mafia bosses and short , tan people, who bullshit others as a way of living, italians are the worst catergory in everything.
[...]
I don't think i have a wrong attitude, is just my way to put things on, i don't sugar coat, no way, italians aren't good at making games, i am not talking about knowledge, since we all know that italians universities are among the best ( only in litterature ), [...] technologically italy is many steps behind, no entertainment culture finalized at videogames [...], they don't use their cars anymore to spare oil
Please note how he also edited his posts later on. I'm not sure I feel like commenting on this right now.
Edit: well, while I'm waiting for the report I'm working on to finish crunching numbers, I guess I can spend a few minutes writing down how I feel about this.
That people of other countries have a low consideration for italians is nothing new. It's a sad reality, not shared across everyone of course, but it does happen. However, we're talking about game development here and I'll keep it at that.
I think Italy never ever had the possibility to grow in the gaming industry. We simply don't have a business for that. Many bright minds fly away from this country towards more fertile fields, where they can actually work and make a good living out of their talent. The idea of a game dev convention is both a good and an irrelevant news. A good news, seeing as there's always the need to spark a start, but irrelevant, since I really doubt it'll help investors create business. It's all about earning a living eventually (for big companies even more so). We had a few good productions in a distant past (Milestone with Screamer and a few other racing games, or Lightshock with Pray for Death which was a very nice fighting game at the time), but then it all stopped.
I really think it's hard to start competing with multi-millionaire companies ex nihilo. I also think we wouldn't be able to create a Cave Story clone (which is an amazing game, a one man effort worth gold) even if we really wanted. Why is it so? I don't know, all I know is that they can convention all they want, but that's not gonna help unless someone starts changing the business. And this is something not happening overnight.
I for one have always been interested and secretly in love with game programming. I never found anyone to share this passion of mine with where I live. The italian game dev site reminds me of the desert, with a few, lone explorers along its path.
But then again, I can't complain. I for one am not doing much to change this. I cannot.
Thursday, October 2, 2008
Designing a Magic System
I just found out this amazing series thanks to gamedev.net dailies.
Designing a Magic System by Andrew Doull
(Plus a fine article from Craig Perko - found in the series above)
Seeing how magic and its systems have gotten a formal definition over time is both entertaining and enlightening. I used to design a pen and paper RPG rules for fun when I was in my teens. The act of balancing, adding to or removing from a specific rule set is not as straightforward as it might seem. Actually, while I'm all for coming up with cool ideas about magic and so on, I must admit players (including me) are used to defined schemes. So, I guess, we're not just balancing fireballs versus shields, but also marketability versus innovation.
And makes me wonder if we will eventually get used to "common" magic...
Designing a Magic System by Andrew Doull
(Plus a fine article from Craig Perko - found in the series above)
Seeing how magic and its systems have gotten a formal definition over time is both entertaining and enlightening. I used to design a pen and paper RPG rules for fun when I was in my teens. The act of balancing, adding to or removing from a specific rule set is not as straightforward as it might seem. Actually, while I'm all for coming up with cool ideas about magic and so on, I must admit players (including me) are used to defined schemes. So, I guess, we're not just balancing fireballs versus shields, but also marketability versus innovation.
And makes me wonder if we will eventually get used to "common" magic...
Monday, September 29, 2008
A change of... hosting
About to move to my newly bought domain... redirect your bookmarks (as if you bookmarked this site, ha!) ;P
Edit: as I mentioned in the comments, the new site is not ready and I'm not sure how long it'll take... :]
Edit 2: I guess I shouldn't have mentioned this "change" seeing as I'm finding blogspot so much more comfortable. It has everything I need at the moment. I'll post again should I ever actually change the hosting of my blog. Hurrah for pointless posts! :D
Edit: as I mentioned in the comments, the new site is not ready and I'm not sure how long it'll take... :]
Edit 2: I guess I shouldn't have mentioned this "change" seeing as I'm finding blogspot so much more comfortable. It has everything I need at the moment. I'll post again should I ever actually change the hosting of my blog. Hurrah for pointless posts! :D
Thursday, August 14, 2008
Away Notice
To everybody who sent me an email in these last days: I'm on holiday, I'll be sure to reply as soon as I come back.
Wien (Vienna) and Budapest are awesome :)
PS: If you plan on going abroad with your trusty laptop, be sure to bring a power adapter.
PPS: I'm away for another week and I won't have an internet connection... take good care everyone and see you soon!
Wien (Vienna) and Budapest are awesome :)
PS: If you plan on going abroad with your trusty laptop, be sure to bring a power adapter.
PPS: I'm away for another week and I won't have an internet connection... take good care everyone and see you soon!
Thursday, July 17, 2008
First post
Sooo hi 2 u all. I think I'll use this blog to write and ramble about the development of Darkmana.
See you later, I'm at work now.
PS: Who's "you"? Nobody knows about this blog. oO
See you later, I'm at work now.
PS: Who's "you"? Nobody knows about this blog. oO
Subscribe to:
Posts (Atom)