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 / Sports Fiction ®

Author
Message
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 31st Jul 2022 06:40 Edited at: 31st Jul 2022 06:41
Performance bottlenecks are the bane of developers everywhere, finding ways around them is the hallmark of a capable engineer. I've had a lot of success in my career by pursuing creative and unconventional solutions and wish you the best here.

I'm interested in hearing some more details on your terrain solution. What are you using if not a height map? Modularity is always good, but how is that being applied here? At the end of the day isn't some kind of height data still needed? Good, detailed and efficient terrains are complicated things, I'm super curious how you are approaching this

Edit: page
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Dimis
12
Years of Service
User Offline
Joined: 12th Jun 2011
Location: Athens, Hellas
Posted: 6th Aug 2022 18:11
I hope we get to see some of your progress soon! Are you still going for a cartoon visual style?
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 16th Sep 2022 10:14
I've now used an array of grids and called it a cell container. The terrain can have multiple cell containers for a variety of purposes. Depending on what surrounds cell, or what class of cell it is, the cell is rendered dynamically and then forms a mesh. I can have a mesh applied to flat land and other meshes applied to cliff edges for example.
I plan to add these meshes to a memory cache and file cache when not near the camera.
The main terrain features are not height field based, but there will be applications of height field terrains in use here and there.
I will be able to draw these terrain cells like pixels, but for now I am generating them while I focus more on the artefacts and architecture. I'm taking advantage of the improved hardware of today and using more non-destructive CAD features.

The visual style will feature cartoonish shading to resemble a variety of techniques used in comics. I also plan to use comic panel layouts for much of the user interface. And will reuse the style in future projects in general to make use of my investments in the rendering techniques.

I've been more consistent with my coding sessions over the past year and will soon be able to turn a bunch of lines into buildings, and performance will be more manageable this time. Once that is done I can start animating things, and I am currently looking for a better physics engine DLL.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 19th Nov 2022 08:08
Update

Currently playing around with geometry drawing functions which will use models to render lines, triangles, circles and grids into buildings and terrain. I have the mouse drawing actions interpreted, but I have got to spend some time working on storage and deployment of the level outlines drawn, 3D models and shaders. I shall also start putting together the user interface controls which resemble comic strips. All in all, I shall be approaching the end of the boring phase of building the framework. After next month I can start working on the fun part (which is what I care about).
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 11th Jan 2023 08:34
Update

I have about 25% of the level outline drawing tools completed. The line an shape tools, together with the terrain grid, will progressively extract level entities out of templates and use the 3D models in the templates, their materials, their lights and arrange them accordingly around the player's camera position. Blender 3D model scripting, Adobe CC scripting and an Entity Framework system will feed 3d dbo models and so forth packaged into the templates to be rendered by the Dbpro viewport and the terrain it presents. From the player's perspective it will all look like a typical game level. From my perspective, I shall build levels, this time, without repetitious mouse clicking and vertex-pushing a million times just to line up a road along the terrain.

I have recently completed my viewport engine performance monitor rather quickly. In my failed attempt I had to spend about 30 minutes trying to figure out what was bottlenecking the performance each time a new impacted an existing feature in a performance degrading manner. I have been thinking about this for quite some time, as garbage collection and poor performance design led to an unmanageable circumstance. It had a rather limited engine performance monitor which only recorded the timespan between 20 or so major functions.
The new performance monitor has ability to check timespans of each and every function, 500 and counting so far, with some functions logically excluded from monitoring. There are event recordings, object detail recordings, recordings for limb counts, polygon counts, collision counts and when all of such occurs; and I get to look at the results in an Excel spreadsheet with graphs when ever I please. There are to be 3 versions of the viewport, at the time of writing. The normal version, the profiler (performance check version), and the one I am about to start writing next week, the debugger version.

The debugger version shall inherit the code base of the profiler performance version I wrote, and simply provide me with a means of checking, logging or editing variables at any point during runtime testing.

Attachments

Login to view attachments
Kevin Picone
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 7th Feb 2023 03:26

Love the performance monitor stat's !

PlayBASIC To HTML5/WEB - Convert PlayBASIC To Machine Code
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 9th Mar 2023 10:43
I appreciate that Kevin!

I shall now be very glad to know that whenever a component of the game is leading towards an unmanageable bottleneck, I can see this occurring far in the horizon through such visualisations. So desirable that something similar is being developed this week that provides visualisations of the DBPro variables, needing to be analysed and tested for any potential bugs without the need to recompile the executable.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th May 2023 16:53
Update

This is the weekend where I attempted to provide cell based terrain smoothing. The task has been rather more complex than I anticipated, and will need to spend more time designing, testing, tweaking and finding the most efficient means of applying terrain characteristics and levels of smoothing in the production environment.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 4th Aug 2023 18:20 Edited at: 4th Aug 2023 18:23
Update

After a busy spell at the work place refactoring apps upon apps.., I’m now looking forward to the added spare time to play around with terrain smoothing algorithms and techniques.



I was not satisfied with the original concept of deforming the boring terrain grid based on a (boring) single sized cell, and have moved on to a more flexible hierarchically (scalable) arrangement of cells that can be as refined as complex as is suitable for the sort of terrain features, and their proximity to the camera. The terrain cell will now have the option to be broken down into however many levels will suit the look.
I.E. terrains cells inside terrain cells.

This also led to extracting a base class of cell that applies the same principles hierarchical arrays to other sorts of entities, but I’ll see how well this goes. Now that things are quiet at work, I shall press on with this.

Attachments

Login to view attachments
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 26th Oct 2023 18:42
Update

Terrains, Bezier-meshes, cell grids and other geometry components of the system are undergoing clean-ups and integration tests before focusing creativity. The implementations are decoupled from each other and from the technology; a design that will provide me with a level of freedom to swap, change and adapt features and technology without having to start over like the last time.
One last boring spell then things get more interesting,
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 1st Jan 2024 17:26
New year update

The code base is starting to scale much better than ever. The foundation is almost set as I add in the final base classes for grids, terrains and meshes. Once I can get the this up and running, most likely this month, the visual aspects of the work will become the central focus. No more low level code base work moving forward.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 29th Mar 2024 11:00
Spring update

From end to end, we have our 3D viewport, user interface, desktop client, low latency server, background worker services, web API, entity configuration web application, and a database SQL server all working together as a modular system with replaceable parts. A separation of concerns with a time consuming set-up phase, calling for a great deal of patience. These sub projects are now functioning; enabling me to test, tweak and save my entities without having to think much about it. When a new technology needs to be introduced into this system, and an old one replaced, there are enough seams between the implementations to scale and extend. It took a while, but the pros out way the cons. Unlike before, now when a bottleneck arises, or something malfunctions, it does not affect the whole system, like it did when I had about 2 sub-projects; problems a segregated and dealt with more quickly on separate layers of abstraction.

My next task is to implement audio and visual controls into the web application in order to define materials, shaders and terrains via web app, instead of with script files, and to do so while the game runs without having to restart the game to make changes.

Login to post a reply

Server time is: 2024-03-29 14:37:28
Your offset time is: 2024-03-29 14:37:28