Tonight I played Dragon Age Inquisition for 40 minutes. In that time I killed an alcove full of spiders, went through a cave of spiders, got chased by a bear, killed a giant and closed one rift by avoiding combat entirely. I've played about 20 hours of Dragon Age Inquisition so far and I'm so disappointed.
I loved Dragon Age Origins. It (also Mass Effect) is perfection in the form of a giant branching story punctuated with carefully designed scripted battles. Add gear progression, crafting, and characters you can really care about, and I spend hundreds of hours on those games.
Miranda as it was. Before The Burning
I found this image tonight. I do so little art, but I made this planet in Blender for an earlier version of the trailer, and I thought it turned out quite well.
I demoed The Imperial Realm::Miranda
to about twenty people tonight at Full Indie
demo night. I wasn't sure I was going to show the game when I went down there, but I found an open table with power, brought out the business cards and started talking to a lot of really nice people.
Holy sh** Is The Highest Praise
I got quite a few "holy sh**"'s tonight which is really the highest praise you can get. Usually it was when I pointed out my base on the map and then zoomed out to show the whole map.
It's been a few years since I've shown anything in public so it was fun to go through the process of figuring out how to best demo Miranda. I got a good laugh from one fellow who pointed out "that you can always tell when its someone from marketing doing a demo and when it is one of the developers, because marketing glosses over bugs, and developers point them out." I think I'm a hybrid, I only mention bugs if its really obvious, like big black buildings in the middle of the screen.
If anyone ever tells you sorting your meshes by material and minimizing redundant calls in OpenGL isn't worth your while, they're wrong.
Frame rates have been slowly decreasing as I've been adding new content. Recently my 2GHz Core i7 with NVidia GeForce GT 555M had hit an all-time low framerate of around 50FPS. I needed to do something to crank those framerates back up so players with lower-spec machines would have a chance.
The obvious candidate was the way my renderer handled materials. It didn't really do enough to tell if materials that had different settings were otherwise identical (same textures/shaders.) And it did nothing to reduce redundant state changes, happily changing shader and every rendering setting at the end of each material even if the next material used all the same settings.
As I've added more and more particle effects to The Imperial Realm::Miranda
I've started to see problems with drawing order. The most obvious problem is sometimes when the camera moves during explosions and the smoke alternates in front of and behind the flowers on the terrain. It's not so pretty. The large bulk of my particles are transparent (have cut out bits) but I have a few that are truly translucent (partially see-through bits) which really complicates things.
I watched a ton of RTS game trailers last week trying to figure out what elements people might expect in the trailer for Miranda. Besides a bunch of prerendered stuff that I'm not going to do, what I saw were a lot of explosions, some simple vehicle physics, and a lot of weapon effects that leave trails of smoke. That's not too bad a list.
Up until today I've been exporting NvOptimusEnablement to enable the NVidia card in my laptop (which also has an Intel card for 2D.) For whatever reason, it stopped working mysteriously this week which led to an hour of trying to figure out why it was all of a sudden taking 3 seconds to render each frame (Intel OpenGL is really, really sad.)
uses UDP for messaging. Sometimes it is super-inconvenient to break a message into packet-sized pieces so on top of that, I have what I call JumboPackets. JumboPackets support sending messages larger than a single packet. The cool thing about the way I implemented JumboPackets is that as far as anyone outside the networking system is concerned, they are just like regular packets - only bigger.
The one problem with JumboPackets is that they're subject to rate limiting like any other packet, so if a jumbo packet is actually 3 regular packets, it must be reassembled on the proxy, sent to the client and then reassembled again. So a 3K packet at a 1K/second send rate limit with 2 hops takes 6 seconds to get delivered. This problem gets worse as packets get larger. Recently I started experimenting with much larger datasets (more units, more teams) and discovered that some of the packets sent during the initial connection were getting quite large and noticeably slowing "load time."
In the last blog post I said I'd been working hard to get Miranda out the door. Here's some of the things I've been working on...
[Chat, building smoke, animated radar dishes, new silos and power gauge.]
Ok thank you! I'll check the scrolling code from the example code. :)
If I were you I would implement CEF
rather than Berkelium at this point. That said, I didn't implement context menus, although they probably work like Widgets where you need to create a new window with the same bitmap handling as the main berkelium ...
I have been trying to implement Berkelium for a couple of days now...
I am still having trouble with:
1. Context menus (by right clicking). They tries to open it seems, because the onShowContextMenu function gets called, but they never become ...
Awesome it is great to hear another update Robert!.
It would have been a whole lot easier if I hadn't gone with a gigantic seamless open world and limited the number of players in a match to 8 or so. Live and learn ;)
There should be another video next week some time - superweapons this time.