Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / Herikan Odyssey

Author
Message
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 22nd May 2014 22:54
Greetings!

As a DBPro forum lurker I felt it was time to share the reasons for my voyeuristic foruming. I use my love of space games to hobby around in DarkBasic Pro and figure out how to make things work. Amazingly I've been at this a few years but still feel like I have only just scratched the surface of what's to be learned. As much as can be crammed in my feeble little mind that is. Admittedly I think I'm more of a designer at heart then a programmer but I still enjoy coding as a challenge and learning.



So this is my main hobby project I'm calling Herikan Odyssey. The idea to start was simple, make a space game like Wing commander, Tie Fighter, Freelancer, etc. There have always been a few ideas I've wanted to see put into those kinds of games but were never entertained by others, so I wanted to try my own hand at exploring them in a project. So far its barely a shell of what I intend and who knows how long till its feature complete enough to be called a game, but the only way to get to a destination is to take one more step.



Its currently sitting at around 15k lines of code with another 10k or so added with TopGui. I need to refactor some sections to reduce that down since I know a lot more now then I did last year when a lot of it was written. Its been a tremendous vehicle for me to learn about basic concepts which then allow more advanced concepts to be understood which then allow for even more concepts to be understood. So its a toss up as far as being efficient since I know that I can only work from where I'm at and I'll probably need to redo every thing 5 times or more once I understand how to approach programming structures I couldn't even gleam about at the beginning. I'm ok with that though, its the only way I know how to learn. Embrace mistakes, they're gifts of learning.



I have basic mechanics in, which allow you to mine an asteroid for its ore, take that ore to a refining station and refine it into elements. Research and develop a plan for drive tech at a Research station which you then take to a Manufacturing station and combine with the elements you refined to produce a drive module which you then take to a Culture station which has shipyards and equip it to your ship. Its a basic process but was fun to see it through in programming code.



I also have the beginnings of crew management where you'll be able to train up crew and assign them various skills which will be useful in some way which I haven't decided on yet. Currently you assign them to station tasks to help reduce the time it takes to complete a station project, be it research, refining, manufacturing etc. There still so much to play around with though and find what works and what maybe isn't as fun as it might sound, etc.



There so much I can add to this and hope to over time, I just need a space to start showing where I'm at with it, and express where my current troubles are. Though admittedly I really don't post much because I usually prefer to read everything i can from the forums and then work them out myself. By the time I get to a point where I can describe the problem I'm having I can usually work out a solution so it becomes kind of mute to post at that point. How can I ask about what I don't know about, you know.

I'm currently milling over things like:

- Timing for different speeds across computers and when to know which algorithm to attach it to...and how to do that exactly with certain kinds of math (like vector math). And how to tell if its even working. Or that the problem is that or something else going on. Or AAAAAAAAAAAAAAAAAAAAAAGHGHGHGHGH MY HEAD!!!

- Best practices for how to setup efficient code flow and how to work with my own limitations of the mind and work flow.

- More stuff I can't say cause its so confusing, etc.

As a note, all the models I do myself in Blender and all the art you see it still only placeholder junk I intend to replace once I nail down mechanics. I don't think I could handle making an EXE available yet, there still so much in flux it would be kind of pointless to have to trouble shoot performance when the underlying framework is still in flux. Enjoy the screen shots though! I'll make this cool in the end! Eventually. Some day. I guess.

And here's another map shot:

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 23rd May 2014 00:59
This looks amazing, judging by the screen shots! Have you played any of the X series by egosoft?

Can I ask, are you currently using any pathfinding algorithms in this game, and if so, what approach do they use? I'm interested because pathfinding in 3D space isn't trivial.

Your mod has been erased by a signature
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 23rd May 2014 04:43
Quote: "This looks amazing, judging by the screen shots! Have you played any of the X series by egosoft?

Can I ask, are you currently using any pathfinding algorithms in this game, and if so, what approach do they use? I'm interested because pathfinding in 3D space isn't trivial."


Yup, definitely played the X series, along with Eve Online, Dark Star, Freelancer, most of the Wing Commander series, most of the old X-Wing series, uh what else...so anyway, yeah, I'm a fan of the space themed games. Two games coming out look incredible, Star Citizen and Elite: Dangerous. It would be real easy for me to let those games take the wind out of my motivational sails, but I've worked enough on this idea that I want to keep going with it and see what I can do with it anyway.

As for pathfinding, you posted a link not long ago on Flocking that I'm actually beginning right now to use as a base to start trying my hand at the AI ship handling. I have had it in my mind for a while though and know its not exactly the easiest thing in the world to work out. From the little vector math I've tried it doesn't come easy to me either so I'm trying not to sabotage myself at the start with defeatist expectations. If I can't get my head around the vector math I'll probably just do some stupid simple turning methods that look good enough. I don't know really yet. The hard part of it as well is not knowing if I've developed enough in code to be able to have all the needed parts to describe the problem to solve for correctly. Either way I'll devote the next few weeks to trying things out with EZrotate and vectors and see what can work. I think my goal at this point is silly simple, just make a coding pass using these flocking ideas and see what happens.

Thanks for the comments and questions, I enjoy reading about what your working on TheComet, I've learned quite a lot from you.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 23rd May 2014 09:37
Looks like a good game

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 23rd May 2014 14:55
Quote: "As for pathfinding, you posted a link not long ago on Flocking that I'm actually beginning right now to use as a base to start trying my hand at the AI ship handling."


Ah, cool! I'd say flocking is definitely the best approach for handling movement, and the vector math behind it isn't that difficult either.

I've had this concept in my head for a while regarding path finding in space with arbitrarily shaped objects such as your space station in the first screen shot. Maybe you've heard of navigation meshes before? It wouldn't be hard to expand the concept to 3D, and modify the search algorithm to return paths going around objects instead of along the surface. Would require a combination of ray-casting, A* path finding, and logic for detecting "exit points". Just some food for thought, I haven't actually implemented anything like that before.

Of course, that would only make sense if you're planning on having AI space ships that actually need dynamic path finding, such as fighters wanting to destroy the player. Anything else could use static way point based paths.

Your mod has been erased by a signature
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 23rd May 2014 21:49 Edited at: 23rd May 2014 22:14
Quote: "Ah, cool! I'd say flocking is definitely the best approach for handling movement, and the vector math behind it isn't that difficult either."


Just thought I would mention for others reference that its not just flocking that caught my attention but at the bottom of that article there where links to other related Seeking Behaviors. So in all there's a lot to explore!


Quote: "I've had this concept in my head for a while regarding path finding in space with arbitrarily shaped objects such as your space station in the first screen shot. Maybe you've heard of navigation meshes before? It wouldn't be hard to expand the concept to 3D, and modify the search algorithm to return paths going around objects instead of along the surface. Would require a combination of ray-casting, A* path finding, and logic for detecting "exit points". Just some food for thought, I haven't actually implemented anything like that before.
"


Just for clarity do you mean to use navigation meshes to go around large objects like space stations or to navigate the whole of space using meshes? Great article, thanks for enlightening me once again. I love articles like that because there's so much in there to feast upon and explore methods from whats implied.

What does the "A* path" refer to? I see it reference a lot, is it a specific method? I think I recall some kind of add-on for it or something somewhere?

And yes, the nice thing about this kind of game is, well, "Space!". There's a lot of it around. So its not as complicated as a urban setting on the surface of a planet with tightly packed buildings, etc. So I can get stupid simple if needed for point objects to a target and B-lining it. There's just the occasional asteroid field, large space stations/small moons to move around. Actually a few games I know of have pretty poor ai pathing to move around large things like stations, so I want to find a decent solution for that.

Thanks again!
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 24th May 2014 01:48
Quote: "What does the "A* path" refer to?"


A* is one of the more popular search algorithms. Most people are familiar with finding a path on a 2D grid using A*, but it works on any graph. 3D geometry is essentially a graph, and that's what a navigation mesh is, only with a few extra attributes added to each vertex (like the distance between each connected neighbour vertex, so A* can calculate a hysteresis).

I was thinking it would be possible to find a path around an object if it lies in between two arbitrary 3D points using an approach such as that.

Your mod has been erased by a signature
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 24th May 2014 03:29
Quote: "I was thinking it would be possible to find a path around an object if it lies in between two arbitrary 3D points using an approach such as that."


That's what I thought, I just wanted to be sure I wasn't missing something awesome I just wasn't understanding.
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 30th May 2014 03:40
A couple things I wanted to share.

Yesterday was a break through day for me because I finally wrapped my head around and figured out how to implement the timing code to base all the movements on. Now I know what to attach to various movements and how to tell if its not working correctly. A very big day for me since I've known about it for over the past year(s?) but haven't for whatever reason had it click. Its finally clicked. Now I can go forward to balancing and implementing animation and whatever else involving speed. So a big milestone for me. Its times like these I like to celebrate with this!

https://www.youtube.com/watch?v=BSf5tx4e_PA

Also I started to mess around with steering mechanics a bit and exploring vectors. Vectors are fun to play with and yet maddening at the same time, though I figured out an important thing to know about them, while they point to a location in space, the other end of their magnitude is locked into 0,0,0 in global space. Knowing that really helped me understand how they behave a bit better. I kept wanting to think of them as a 3D line I could place both ends anywhere in space.

In the end I moved away from them a bit and started messing around with the cheater tool...I mean, handy tool EZRotate. It does make things easier, that's for sure. I still think there's value in trying to work out the math of a rotation mechanics for knowledge sake. At least that's my current justification for smashing my head against a wall for 5 day or so and still not knowing what I was doing. Real learning seams to always be on its own time schedule, not the 5 minutes you'd like it to take. I've gained some awareness now though I didn't have and that's good. Nothing I'd like to show though of course. Except my new steering mascot!



Apparently he's pretty indifferent to my yellow target box in the background. Guess I still have personal issues to work out between them. I do have a basic workings on rotation with EZRotate though, enough to work out some steering mechanics for Approach and Evade mechanics. Eventually I would like to work out Newtonian mechanics and get working code examples, I think based on my current knowledge base though that's a long term goal. There's still some elementary mechanics I need to understand till I get there. All in good time though.

More to come!
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 30th May 2014 14:55
Cool!

In your game, do you plan on having a global "up" direction? Or is "up" truly dependent on how you control your ship?

Note that I've never used EZRotate and this is just an assumption, but I think the big problem with EZRotate (going by the name) is that you have to continuously convert between angles and vectors. Vector math exists to avoid exactly that.

With that said, I've heard a lot of positive things about EZRotate, It's especially good at space games.

Your dungeon has been arrested by a signature image because it tried to be a mod
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 30th May 2014 22:45 Edited at: 30th May 2014 22:47
Quote: "In your game, do you plan on having a global "up" direction? Or is "up" truly dependent on how you control your ship?"


It will be fully 3D in all directions, for example I have the spacial management code in place so the floating point error the farther away from 0,0,0 you get will never show up. So you can travel in any direction for a very long time. Which brings up a whole new set of issues with how to manage that much freedom and still keep it easy to access and interesting. Space is boring blank on the face of it.

It would be easier to manage a horizontal plane from a couple perspectives. One, people are used to thinking in terms of a horizon since that's the Earth we stand on and have the perspective of. Its unsettling and difficult to break away from that perspective when dealing with freedom in all directions. Second, by limiting space to a horizontal plane its way easier to program since it avoids a lot of the 3D math, and can directly benefit from a lot of those Steering examples you've referenced before since they are written for 2D.

So my original vision is to have it space in all directions to explore.


Quote: "Note that I've never used EZRotate and this is just an assumption, but I think the big problem with EZRotate (going by the name) is that you have to continuously convert between angles and vectors."


There's this code:

http://forum.thegamecreators.com/?m=forum_view&t=186454&b=15

Which appears to help to simplify getting an angle from vectors in a local sense. There's a lot of aligning to angles and general angle use with the DBPro commands from the beginning anyway. So using vectors as an alternative is a rather foreign concept for me still to grasp. What I don't know yet (and suspect you've already explored and know something about)is how much performance is lost for that simplicity and what can I expect to do about it at this stage of my development.


Quote: "Vector math exists to avoid exactly that."


This is a fascinating statement for me, because I noticed commands like BUILD LOOKAT RHMATRIX4 and started wondering if using matrix and vector math you can use this to make a viewing camera? So there's no need to use the DBPro camera commands? Which is exactly how the camera commands work in the first place? This is kind of where I'm at with this, still just beginning to see how the rules work in 3D space. Of course that seams like a TON of work to figure out when those commands already exist, but if learned and mastered then it allows for customizing commands more for the needs you have for the game, etc. My minds a little blown by that revelation.

So part of me wants to know how I utilize the vector math to remove the conversion to angels process as your suggesting. Then I see the work required and go whoa OK this will take some time so maybe I'll just use the simplified tools at first and get the game concept in place then if/when I see what the real needs are I'll get more into the vector math. Though I'm feeling its inevitable at some point that I will need to, just to squelch my obsessions.

And yea space is simple, point object at target, go to target, maybe check other objects. But there's no pathing on a surface to deal with which simplifies things quite a bit.

Hope that explains what your asking. Thanks for the comments!
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 6th Jun 2014 23:56
I'm utterly gutted right now.

Spent the last week doing some pretty heavy code cleaning, working toward implementing this recovery from a lost device example:

http://forum.thegamecreators.com/?m=forum_view&t=202959&b=1

I've made heavy use of TopGui in my program. I worked through the errors in my code only to reach the TopGui code and realize images are deeply imbedded in its workings. Since ALL images need to be restored it makes image tracking a nightmare since I'm unfamiliar with TopGui's workings. It would be a daunting task to try and rework the code to bring this about, so my exploits in this endeavor have reached an end. I just hate having to choose between a kickbutt GUI or tabbing out of my game. Going to shelve this idea for a future wish.

Gutted.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 7th Jun 2014 00:43 Edited at: 7th Jun 2014 00:44
Really? I did not think TopGUI was that reliant on images; I have use it for a number of years. Most of its design is rendered with Advanced2D drawing commands. Did you make many changes to the original source code? I found it best to build on top of it rather than alter it; much of Diggsey's code is a bit beyond my scope of knowledge so I avoided changing his code directly, except for a few user input procedures and themes.

wattywatts
14
Years of Service
User Offline
Joined: 25th May 2009
Location: Michigan
Posted: 7th Jun 2014 00:47 Edited at: 7th Jun 2014 00:55
Why not display an error message stating that the game will close but an autosave has been created? I don't know if that would work or not, just throwing it out there.

EDIT
Nevermind, I had no idea 'on error' wasn't a dbpro command.
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 7th Jun 2014 08:35
No, I haven't altered the code for TopGui except for, as you did, a user input or two and themes.

A simple find search for image in the TopGui.dba will reveal its use of images for overlays and cached text. I suppose I can ask Diggsey about adding image tracking and recreation or how to approach it myself, though I'm not comfortable with asking him to do more work on top of all he's already done on it.

And really it wasn't the lost progress that concerned me, though I suppose it should , but was mainly the ability to tab out and back in since I do it all the time while playing games and seams like a no brainer feature to have.

I don't feel like this was a complete waste for me though, my code is always in need of major refactoring and I got a lot of my loading assets consolidated and in order. And it did get all the way through my code without errors which means I'm accounting for all my assets properly which helps me feel like it was worth the work. So yay me for progress.

Thanks for the comments and interest guys!
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 1st Jul 2014 20:16 Edited at: 25th Jul 2014 17:42
There so many little things that need attending sometimes. This last month I've spent going over my entire code and removing and reworking sections of it. My train of thought started with something like this:

I'm going to work on entity AI!
Oh wait I need to get them to move first.
Better refactor my movement algorithms.
Ugh this is taking a while to compile, better go through and refactor some sections.
Hmm, this would be easier if I could assign input keys in game.
Hey and why isn't there any sound, how does that work?
Oh wait, how do I connect it to my current setup?
Better redesign the data type structure.
Oh wait, how DO I want the ship systems design to work?
Better work out how I want ship systems to work.

One intention lead to another intention which lead to twenty others etc. The end result of a month of this is:

- Removed 5000 lines of code I'll be redeveloping.
- Implemented a first pass for customizing Input Settings.
- Implemented a few sounds and music to begin getting a feel for how to approach programming for it.
- Refactored my ship movement algorithms to apply them to any ship object.
- Reorganized the data types to take into account a new ship data organization.
- Refactored the mining beam to a limb rather then an object.

For the moment its at a better place now to attach a single code algorithm to multiple entities. I expect I'll be reevaluating along the way as well. For me at least I find there's only so much planning I can do ahead of time before I need to get into the programming of it to get a better sense of what works and what I hadn't thought of.

At any rate, I just started a first pass ship construction UI prototype. Forgive the scrunchy text, the text doesn't scale well for now.



Just a rough idea for now. I've been playing around with fonts a bit too. Ultimately though this helps me work out what exactly I need data wise and how I want systems to work together. Its a long process of refining that will result in reworks and redesigns but slowly bring it closer to what I intend, if its possible of course.

Also I occasionally get distracted in Blender and randomly create a 3D object.



This day I was thinking of cargo systems and created a cargo pod.

So progress for sure. The code base is in a better place now for where I want to go with ship objects and mechanics. I'm going to be working on ship systems for a while and really fleshing out that system because so many things depend on having that setup as I intend it to be. Should be interesting to see how things develop over the next month or so.

Enjoy the day!
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 15th Jul 2014 13:53
Arrays in UDT can die in a fire! Just sayin...
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 25th Jul 2014 18:34 Edited at: 25th Jul 2014 19:35
So yea, where to even begin...the ship creation UI has changed a tad (A lot!).



Holy data dumps Batman! I started to display as much information about ship systems as possible in one space to get a feel for what is needed and what isn't relevant. I also started to tie together things like power sources and how they relate to engines and how that relates to the rest of the ships systems. All in all this has been a lot of fun bringing in a lot of ideas I've had for a while and tying them together. Figuring out how to code it too has been a learning experience as well.

Basically everything you add affects ship speed and acceleration based on its mass and the power of the engines you've fitted, so if you want more armor it adds mass which affects ship movement. If you want cargo then it adds mass which, etc... This is a very rough layout but the important thing is to see how it works and what kind of elements are available to design around. Its also setup now so I can start adding ship features like weapons and collection methods using modules. Its not just been about how the interface is layed out but also how to organize the data structures so it behaves the way I want it to. So there's a lot going on behind the scene that isn't represented in screen shots. Overall though this is still very much prototyping different ideas to see how they come off, the engine itself is still a shell with very little functionality to it.

I discovered the alpha channel feature of the RGB command, which I've started to go crazy with as you might tell. A lot of the UI panels are now mostly transparent. I'm curious to know how the alpha interacts with shaders but I won't be exploring shaders for a while still. Some day!

Image Hi-Res Link: https://s3.amazonaws.com/daktaknomad/Herikan/Herikan+Odyssey+010.jpg


Here, I've reorganized the cargo info window so it actually shows the changing mass as you load up on asteroid ore and it adjusts real time showing how much space you have left and how much is full. I also got a working mechanic for fuel consumption rates based on mass and the power of the engines. Its implemented in its raw form at least so you can actually run out of fuel and be stuck in the empty abyss of space for eternity...or until you restart the program that is. Lots of implications to work out still but its fun to see features for the first time. Feels a little bit like a game! Almost. Kind of.

Part of me wants to go on listing all the cool things its doing but at the same time I know that it will likely change in a few days time so would be kind of silly to reveal. There's a lot implied with the stats I've shown though and a sense of where I'm going with this can be gleamed.

At some point I'll make a video or two just so you can see how things move which can be more revealing then screen shots. Too much to work through though for now, everything's still basic placeholder prototype stuff. Hope you enjoy!
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 8th Aug 2014 08:07
I created a few 3D models for different ship modules and wanted to show them off a bit.



Also I did get the cargo pod attaching working.



Each pod can be removed and attached individually. This will be important later on when something/someone subsystem targets your cargo racks and liberates your pods into space!

Currently I'm trying to work out how I want the spacial system to work, which has all kinds of implications from how to position background planets for rendering to what top speeds can ships got for play balancing. Following this trail of implications has lead to Z buffer management which HOLY COW talk about a Pandora's box! Guess what you can't do so simply in DirectX 9! Sheesh. Guess I'll be dedicating the next month (year?) trying to wrap my head around this one. I love how easy it is to naively try to implement something only to discover the many fields of research needed to work out all the solutions for it! Welcome to the life of a programmer, oh yeah! Good times though, I'm not scared! Mostly.
Seditious
10
Years of Service
User Offline
Joined: 2nd Aug 2013
Location: France
Posted: 9th Aug 2014 23:15
Looks really cool! I enjoy this type of game and hope you finish this. Don't be put off by the lack of replies; this particular board is a bit dead at the moment.
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 9th Aug 2014 23:40
Yeah, I'm not concerned about lack of activity, these boards aren't the target market for this kind of game. I would probably get more response if I opened up a little more about the programming side. Course I still don't consider anything I've done unique either, its all been talked about before. Glad you like the progress though, lots of cool stuff eventually will be done. I just have to get the basics down first. Cheers!
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 28th Aug 2014 17:49
So this month seamed like I wasn't going to get much done. I had to slow down a bit to think about some design issues and how I wanted to approach spacial management. This eventually lead me into how exactly I wanted the 3d map to work and suprisingly enough I got a decent working prototype going.



If you've seen some of the earlier map screen shots then you'll notice a bit of an improvement. The exciting part for me is I got the code working so you can click on the icons to change targets. Considering they're 3D planes I wasn't sure it was going to work well but it looks like it will. You can fully rotate around in 3D and scroll in and out to zoom back and forth too. There's a few other things going on as well but I'm still working out the kinks so will wait till they're working better to show them. All in all it looks like I'll have as much space as I need or want the player to explore in. This only came together this past week. Sometimes I guess you need to meditate quite a bit on things before you're ready to work out the problem.

Hope you enjoy!
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 28th Aug 2014 19:16
Nice work. How did you handle the situation of clicking more than one icon in the same screen area? (If you do not want to disclose such information I'd understand)

One thing I have lost my knowledge about is the relation between object icons and the distance of the object from the camera; it is has been a long long time since I played an MMORPG; these games feature icons over objects near or far away; and it seems the icon scales are calculated on the fly due to legibility being a concern.

Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 28th Aug 2014 20:33 Edited at: 28th Aug 2014 21:43
Hi Chris,

I'm actually doing a lot of things that aren't perceptible, like using scaled down positions of the objects the icons represent then actually placing the icons in that miniaturized position. THEN scaling the icon object up to a certain ratio based on how far they are from the camera. It also takes into account the exact size for 1 to 1 pixel to size ratio, which has some code floating around on the forum somewhere. I also use the camera FoV in the method which is nice if I ever want to use it on a smaller sized camera but there's still an unresolved issue with the scaling where it actually slight scales up the closer to the camera edge. So its not a uniform icon across the screen. The consequence of this is the textures get a little garbled. It matches with the cameras distortion of the viewing field though so its not terrible. I'm ok with it for now. It might be a problem for text though.

The reason I chose this method was for a few reasons, I wanted to avoid the z fighting that occurs when projecting all the icons on a single invisible plane. Also the icons appear spatially more appealing when rotating the camera since they are actually scaled down in correct positions to their corresponding objects, otherwise some icons that represent objects behind other objects can actually be in front, which is a bit confusing to look at. Naturally the icon closest to the camera will take the pick hit, but since the map can be rotated its not hard to get a clear space for the icon you want to select. It works well enough and I avoid Z fighting headache coding for me, hah!

There are still the issues you mention though, when scrolling far away the icons get more bunched and hard to resolve for selection. I was going to find a good scroll point and just turn them off and replace them with a single icon The idea being you can interact with the icon and bring up a list of selectable targets or some such. I'm still trying to decide if it would be needed though. There are actually multiple grid tiers you can scroll out from, with each tier representing blocks of space. Each of the tiers will require its own icon abstraction representation which I'm still working out how to do so things are still fuzzy for me.

Hope that answers your question.
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 29th Aug 2014 03:57
More to your point of scaling objects by distance, in this case I'm just taking the 1 to 1 calculation and applying a ratio to it using a distance from the camera I choose. Dis# being the distance I can change.

Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 29th Aug 2014 07:39 Edited at: 29th Aug 2014 19:07
Getting frisky with fraps. Here's a test example of target selection using the map view.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 29th Aug 2014 18:28
[ youtube ]id[/ youtube ]

Quote: "1to1Distance# = (Screen Height() * 0.5) / tan(camera fov(1) * 0.5)
ScaleFactor# = (Dis#*100)/ 1to1Distance#
Scale Object IconObjId, ScaleFactor#, ScaleFactor#, ScaleFactor#"


The result looks great.

Quote: "I was going to find a good scroll point and just turn them off and replace them with a single icon The idea being you can interact with the icon and bring up a list of selectable"


I think that will be a good idea.

Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 30th Aug 2014 07:57
This does look really interesting and seems like you have made some really good progress on it.

The UI in particular looks impressively functional and complex.

BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 23rd Apr 2015 16:42
unlocking

Quidquid latine dictum sit, altum sonatur
TutCity is being rebuilt
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 23rd Apr 2015 17:13
So this is the most wonderous epic beautimus screenshot to behold in the history of the universe! (I might be biased)

Image Hi-Res Link: https://s3-us-west-1.amazonaws.com/herikanodyssey/Herikan+Odyssey+016.jpg


There's magic in that shot! Can't you see it?! But let me spin my tail even more. Just moments before taking that shot the screen looked like this...

Image Hi-Res Link: https://s3-us-west-1.amazonaws.com/herikanodyssey/Herikan+Odyssey+015.jpg


Isn't that first shot AMAZING??! I'm on complete and utter aww! Not for its visual splendors, its a complete asset mess, BUT its actually RETURNED back into the game without crashing!! There is the magic! Yes I finally figured out my asset management for TopGUI and how to recover from the tabbing out asset wipe DBPro does when you return! This is glorious! It means I can comfortably use TopGUI moving forward! I really like its features so didn't want to have to switch to something else. I referenced this problem last June, so apparently its been a while in coming. Granted the last several months I've had RL things to deal with so didn't get much done. I'm working some more on it now though and making so great progress!

One of the other things I spent the last week doing was making a lite utility for quickly viewing my models in the DBPro engine without having to recompile my large game. It was a good warm up exercise to get my back into thinking programming and it lets me view my texturing work on a model fast so I can get my art assets pipeline figured out. Here's a shot:

Image Hi-Res Link: https://s3-us-west-1.amazonaws.com/herikanodyssey/Herikan+Odyssey+017.jpg


The goal with this is to just let me turn on and off some basic core DBPro commands that won't require lots of support but let me see how they can affect the appearance of the model. Though I expect it will change as my specific development needs grow. It will probably turn into something that lets me establish settings for models outside the engine but that's way off in the future for now. Just a quick full-screen model viewer that let me rotate and zoom quickly using the mouse. Works great and only took a week to slap together!

So anyway, yes I'm working some more on this and doing some major reorganizing and such. I like where its at now and looks to be in a position to get some major core things worked out. Time will soon tell.

Enjoy!
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 20th May 2015 21:47 Edited at: 21st May 2015 02:00
So a bit of an update. I might have fallen into the editor trap! My simple model viewer has expanded a little bit.

Image Hi-Res Link: https://s3-us-west-1.amazonaws.com/herikanodyssey/Herikan+Odyssey+018.jpg

This is actually a good thing though. I decided I needed a tool where I could just setup entities/objects real quickly and then have them auto load into the client without having to recompile and setup anything. A few weeks later and tada! Its working better then I expected it to and I've progressed my programming skills to include string management for files.

Here's a shot of how it looks in the client without having to recompile.



So this should be a great tool for when I get into asset creation and allow me to quickly get things setup for the game. I still have a few bugs to work out with handling Image IDs but for the most part it works pretty well. A few more tweeks on it and then I'll get into reworking the asset management recovery code in the game client and establishing that framework.

One thing I learned recently is just how easy it is to manipulate a single array using the various commands provided by DBPro. I originally just jumped into Types when I first started programming and I think that was a mistake knowing what I know now. Types are annoying to manipulate. Now I'm realizing there's a lot more I can do with just a single array then I expected and I find its easier to create a helper array and manipulate that then dump it in the data-set rather then try and figure out a way to manipulate the whole data set. Anyway a little thing I learned recently. It will change how I manage and run things in the future, hopefully for the better!

Finally, in a bit of comedic irony, I give you an asteroid mining an asteroid!



Enjoy!
PIXIMID
8
Years of Service
User Offline
Joined: 16th May 2015
Location: Somewhere your currently not. ^^
Posted: 21st May 2015 19:42
Quote: "So a bit of an update. I might have fallen into the editor trap! My simple model viewer has expanded a little bit."


Is your model viewer is for your use only or is it going to be available in the game for the player to use?

By the way. Nice work.

I got the power...
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 21st May 2015 22:40
This is just a development tool for me to use but I can see it representing some kind of ship construction tool or modding tool for the future. You'll be able to construct your ships to some extent in the game anyway so I don't expect it would be needed at first.

Thanks for the comments!
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th May 2015 16:27
Nice model viewer; I could do with one of those. Seems like a great place to implement animations and particle effects.

Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 24th May 2015 20:34
Interestingly enough I came across Evolved's particle editor and it blew my mind so I was going to try and add that format to this as well. I'm avoiding animation for some reason but I expect I'll need to go their sooner or later.

I also got material assigning i.e. texture and a shader for limbs as well so its a nice little tool at the moment. Stupid simple really, I have no way to edit the shader parameters in it but maybe I shouldn't open that can of worms. Hah!
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 24th May 2015 23:32 Edited at: 24th May 2015 23:34
Hey Chris, while I've got your ear have you had any experience with using TopGui and recovering from a lost device? It seams my earlier problem is a lot bigger in scope in that Advanced2D text commands (a2Text and a2BoxText) don't reengage when the device returns. It might involve the a2DrawImage command as well. I've tried to use the a2ResetState command but that doesn't seam to do anything, so I'm kinda of at a lost about whats going on or how to try and fix it, especially since the author is awol.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th May 2015 17:36
Regarding the lost device state; unfortunately this is not something I have experienced. Are you using full screen exclusive? If so then try out the other screen modes to test if all goes well. I chose to avoid using full screen exclusive because of stability and windows messaging issues.

It may be worth posting this matter in the main DBP forum to see if someone else might know what to do. I hope you get it sorted.

Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 25th May 2015 22:15 Edited at: 25th May 2015 22:17
Could you be more specific about what kinds of problems stability and windows messaging issues? What kind of performance hit is there to using something other then full screen exclusive? What do you prefer and why? Lots of questions to test now, thank you, that was more helpful and gave me a direction to explore in this.

I've got a few issues I'm banging my head on that I'll be making posts about. I just need to get some recoding done and tested then work out how to present the problems. So much to do now!!!
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 26th May 2015 04:55
I go with full desktop don't really see a performance hit vs exclusive and you can alt tab without a device loss

Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 26th May 2015 05:17
I've been playing with that today, and I see what you mean, its harder to lose the device now for testing. Also I got D3DFunc to work now, apparently it wasn't liking exclusive mode. Which is good news since I can use its text features to replace the misbehaving text features of Advanced2D. The Image Kit looks helpful as well to use so I'm feeling more comfortable with what I have to help solve some of the borked device loss symptoms.
gwheycs62egydws
14
Years of Service
User Offline
Joined: 17th Aug 2009
Location: The World
Posted: 15th Jun 2015 21:34
@Zero G Scott

looks good

you have come a quite a distance from your first post ;o)

to move side ways - is to move forward
Since a Strait line gets thin fast
Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 16th Jun 2015 09:06 Edited at: 16th Jun 2015 09:07
Thanks Resourceful!

Honestly this is all still place holder art while I work on prototyping mechanics. I'm working out star system generation mechanics at the moment which will let me move forward with place and setting more concretely. Not too much to show yet because its data building but good foundational stuff to get done so I can move on to space station mechanics and then core game design mechanics. Still moving it along though even if its quiet.

Thanks for the comment!
PIXIMID
8
Years of Service
User Offline
Joined: 16th May 2015
Location: Somewhere your currently not. ^^
Posted: 16th Jun 2015 20:01
Quote: "Still moving it along though even if its quiet.
"


Trust me, more people will start paying attention sooner or later because this is an awesome project even from the start.

And like Resourceful said, even though your art is just placeholders, it's great to see that your placeholders aren't just boxes and spheres. They're actually are spaceships, meteoroids, etc.


As always, keep up the awesome work.

#B.B IN DEVELOPMENT.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 16th Jun 2015 21:58 Edited at: 16th Jun 2015 22:00
Quiet periods come before the storm ;

Keep at it, luck does get good over time in terms of time and money, and when it does get good you will be ready to put it to use in your software. You are not the only developer around here who has been quiet... lol

Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 16th Jun 2015 22:07
agreed, for a while there were half a dozen great projects consistently updated, but the boards had been quiet for the last month or two with people head down and hard at work. looking forward to the next round of updates across these board

Zero G Scott
16
Years of Service
User Offline
Joined: 14th Dec 2007
Location: California, USA, Earth, Sol Sys
Posted: 17th Jun 2015 01:36 Edited at: 17th Jun 2015 01:50
Thanks for the comments guys! It helps a ton some times.

I've actually been super productive these last couple months. I thinned out the client by about 10k lines of code and reduced its memory usage by over 200mb. So its in very clean shape for building up a new pass of the overall engine and integrating new Image, particles, and asset management methods.

Some of the things I cleaned out where coding examples left in from when I first started learning to program. I've learned a lot since then and its amazing to me to see how I can take code now and reduce it by a huge amount but have it be more flexible. Its quite fulfilling to see the journey.

I'm enjoying the overall process still even though I do need breaks from time to time. Sometimes my brain needs time to catch up with everything.

One other thing that amazes me is how often the desired game mechanics require smart data setup and connection, set it up without much thought and you find that there's very little you can do with it game mechanic wise. So I spend a lot of time trying to learn how to connect the data structures and what programming methods are used for that, and why. Its quite fascinating really.
I'm still working through the basics of that I feel, but to gain that understanding the only way is to practice it. There's only so much you can gain by research and reading, in the end I still have to try it myself in code and work through it to really understand. I don't feel I do that enough.

Blathering on here so I'll just end it for now. Still enjoying the process and what new discoveries of understanding it brings! Now to just direct those toward creating and finishing a game! Its coming into strong focus now though so it should get interesting very soon.
gwheycs62egydws
14
Years of Service
User Offline
Joined: 17th Aug 2009
Location: The World
Posted: 17th Jun 2015 22:27
@Zero G Scott

if the latest physics engine gets finished
it would let things rile shine

and with a couple of additions that are out there
it could also speed things up

the hardest part about any program i have seen
it coming up with a system that only works on whats needed
at the time and not wast time on things that can wait to be
used only when it's needed

to move side ways - is to move forward
Since a Strait line gets thin fast
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 19th Jun 2015 17:59
Very true; a lot of your hard work can go into trivial features.

It is good that you reduced the length of your code; that really helps later on when you need to make changes.

Login to post a reply

Server time is: 2024-04-25 02:48:16
Your offset time is: 2024-04-25 02:48:16