Edu2 Postmortem
March 18, 2008 at 3:13 am | In Coding, Game Projects, Nexuiz, Personal Rantings | No CommentsI think I’ve been talking about Edu2 a lot already and I don’t really feel like giving a huge overview again - probably I will end up doing so nonetheless. Edu2 is finished, over, done. I’m not going to touch it again - ever! That said, I think there are a few nice things and lots of bad things to say and tell about it. I usually paint bleak pictures and I won’t stop here, because I try to be honest with the negative side of things.
I guess this is going to be a bigger postmortem because there are many different topics that I should mention to give the reader a fair impression.
To begin with, a few links first for those interested in Edu1 and Edu2:
- http://www.edu-shooter.de/ Official Edu1 Page - only German though
- http://sourceforge.net/projects/edu2 Our SourceForge Project - you can even download an almost final build
Interesting fact: google for Edu2 and you’ll find a project that is almost about the same things that we worked on - except it’s 2D only.
Final Java Homework at uni.
February 20, 2008 at 12:44 am | In Check This Out!, Coding, Game Projects | 1 CommentThis is the final Java homework in our Java introductory course at university. Enjoy ![]()
Click here to play the game
Greetings,
Black
Edu2p Stuff
February 18, 2008 at 1:37 am | In Game Projects, Nexuiz | 2 CommentsFinally, I’ve found some time to write a tiny post linking to a couple of pics of Edu2 (the prototype) - the project that has kept me busy for the last 3-4 months and burned me out pretty badly from what I can tell..
First a small animation that shows the terminal:

This was an awesome step in my opinion and it’s really great to see it live (especially in a real level).

Res2k aka Frank Richter hacked that into Nexuiz’s new menu (written by div0 - kudos to him for fixing/rewriting the broken piece of shit that my old menu was after all). It’s pretty nice but of course Nexuiz doesn’t support Gecko atm (and won’t either in the near future due to potential security vulnerabilities), and that feature only existed in our branch for some time. I guess I’ll add it back soon, too, because it was really useful.
Next comes Edu2’s chat window which is really a big step forward because it uses client-side code and the menu to replace engine features (ie. the normal messagemode input line when you want to chat). This should be an example for more serious projects, too, because it was really easy and clean and it’s really a lot more professional than the usual DarkPlaces Quake1 look.

Of course, it wasn’t finished and still isn’t fully, so I added a button to view a chat log of different sizes (apparently I don’t have a screenshot of that and I’m too lazy to grab one so here it is without the varying chat log size feature):

Next we spent some time adding model rendering support to the menu. Poor res2k spent a few days writing lots of code and doing many changes in a separate branch that got mostly thrown away by me later and/or rewritten due to bad management (that would be) but that prototype code was used as a base and was probably cleaner than the current result hiding in DP’s codebase.
Anyway a nice first pic after the “hack”:

And even with alpha-blending support - that required some “clever” thinking on my side - and maybe div0 will add that to Nexuiz at least because it was on his wish-list:

We also wanted to feature at least one mini-game (actually we wanted to design something proper but in the end it was our job again to do it and in the very end I volunteered due to having a similar task in my introductory computer science course at university). Guess the game:



Guessed? Yeah pure, good, simple ol’ MineSweeper!
It looks like that in its final version though:


Even div0 didn’t think that such things (resizeable and moveable(!) windows and dynamic items) would be possible in his menu but I hacked that in pretty quickly and it’s not even that big a hack to be honest
).
In the mean-time res2k and I have worked on the player model in the game itself - res2k did the groundwork and it’s a very good one to say this and when he was away for a weekend I simply added animation support from Zymotic and adapted it to our needs somewhat- res2k was a bit angry with me when he came back and found animations somewhat working already but I let him - I didn’t really have any spare time either - finish the rest of course and he also added some code to allow taunts to be sent from clients to server which broadcasts it to all clients which does pretty awesome things using temporary entities in QuakeC - which I’m pretty proud of coming up with to be sincere.
Another big TODO which res2k worked on and which shall not go unmentioned here is all the gecko stuff - except for the dynamic texture code in DP and the first set of gecko builtins and wrappers, he created all of our Gecko backend - which is a free sourceforge project called OffscreenGecko - and even added support for JavaScript interaction with Darkplaces (the various VMs). A major task and because he’s currently in the Amsterdam working on CrystalSpace and the like, it’s up to me to kick some asses and use that in Edu2p for some new ueber-awesome features.
Anyway, what I’ve been working on lately is skin support in edu2p - thus another contribution to the playermodel code
- and intergrating it with the menu plus allowing the users to select different models for the player’s legs, torso and head. I think it looks pretty great with Quake3’s models but sadly we can’t use them and many of the free ones that can be found on ioquake3’s homepage are incompatible and badly tagged (or rather Darkplaces has problems with them that Quake3 has not).



Now imagine that with more WoW-like models and you can see where Edu2(p) is heading. Sadly we have no player modeler right now, who could create such models and the modeler/animator we had that was capable of this was - I sadly have to conclude in retrospect - a complete jerk and arrogant retard - and yes that is mean and probably uncalled for in this public blog but I’m not naming him and I’m pretty pissed off that he still hasn’t replied to 10 emails from me, hasn’t done the work he was more than once politely asked to and agreed to, didn’t give any feedback though we were more than willing to help and adjust requirements if needed and used way too many repeated exclamation and question marks for my taste in his emails and simply dropped of my radar. I’ll still try to see if I can fix the models that we can use but there’s a grim perspective to it with little more than two weeks till the final presentation.
Anyway this is it from me and stay tuned for a really final update on edu2p and more stories and rants and disclosures - no NDA! \o/
Black
This Evening’s Worklog
December 26, 2007 at 12:21 am | In Coding, Game Projects, Red Thumb Games | No CommentsToday I’ve decided to work on BSS again - finally.
And I’ve even come up with a few neat bullet points to help me clean-up the codebase and I really feel like sharing them with the world today (although everybody can come up with them in a few minutes, too, but hey - now I can say that you’ve only copied my thoughts
):
How to fix and clean-up stuff quickly:
What do I want?
- remove unnecessary code
- clean-up the design
- untangle tight couplings
How do I do that???
Hack & Polish
- look at a specific code section
- rewrite it quickly while keeping the behavior the same
- don’t look at the overall design concepts - to KISS (to keep it simple STUPID)
- as soon as the new code actually seems to work, go and polish it slightly (to make it readable again)
Repeat these steps a few times..
Now look at the “overall picture” and try to identify common patterns and remove duplicate code again by writing generic helper code - but this time keep it decoupled and make it less messy!
Rinse and repeat…
OK… sounds great? Yes, it does! And it even works to some degree. I’ve tried it this evening and although I - like always
- lose too much time browsing around and getting lost in the WWW, I still made some progress.
Here’s my worklog as proof (and to annoy Joshua a bit ;-P):
| 18:32 | starting to work on BSS’s cleanup |
| 19:20 | removed some Sploidz-specific code from the items module |
| 20:00 | removed more files, tracked down Joshua’s new coder (wtf didnt he tell me?!?) and found out that two files were missing in the SVN repository (added them from a backup that I have with me here) |
| 20:30 | changed bits of EventFSM and t2dFSM |
| 21:00 | reworking BlockItem |
| 21:45 | BlockItem now uses a FSM |
| 22:45 | BlockGame now is decoupled from Grid (gamelogic-wise) and BlockItem from BaseItem (the latter might be reverted later though) |
| 23:00 | trying to rewrite BlockGame’s setupItem function again but deciding that it’s pretty late |
Enough for today. One more Dexter episode for me now (actually the first today) and then good night!
Good night,
Black
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.