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
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th Apr 2016 00:19 Edited at: 30th Apr 2017 19:01

Sports Fiction - 24/04/16 Visual Performance Programming


Greetings all. This development progress log is regarding recent works in improving the performance of Sports Fiction's land generator. I believe this is the first time showing the generator's produce.

In the previous few posts I introduced a number of goals and principles for providing value for players, a variety of game modes to suit different parts of the target audience and states of mind given the context of playing alone or with friends locally or on the internet. I provided a few of my notes relating to research of online social media and its role in video games, and concluded the posts with a brief introduction of competitive game modes and their maps under development.

The current development session was spent focusing on graphics and performance in DirectX 9.0; quite different from the previous session focusing on gameplay.

My main focus for Sports Fiction will always be its gameplay, but it will also be nice to enjoy the game in a decent looking gameworld. To get the game ready for early access, I need to get its map generator's performance up to par to ensure the experience is as lag free as I can make it without sacrificing too much visual quality.

I will start this development log with details of my goals for the graphics and performance of the game. Then I will discuss specific techniques recently tested. Then I will conclude with some examples of the early land generator so far.




Graphics and performance

I would like to provide players with as many rendering options as I can construct for tweaking game's rendering system. I am building the rendering and lighting system for the game to best suit its nature, and to force myself to learn more about rendering.

I am aiming to have this Windows based game work on budget gaming PCs, whilst providing options for more detailed visuals on medium to top level gaming PCs. If the goal was solely to develop the best looking game possible, then I would not spend much time working on gameplay or budget gaming performance. By focusing on creating a game that can be enjoyed on budget hardware or dated hardware, I will have to compromise on detail and visual quality; however, there are a number of techniques I have developed over a number of years which will ensure the game still looks cool on average systems, and can give any top level PC setup plenty to do if you want to improve the graphics beyond the standard.

It would be silly on my part to put a great deal of work into presenting something without providing sufficient options for you to be able to experience it. A number of options will be made available for you to configure the experience in order for it to function; reducing issues which may cause lag thus making the game unplayable.



Graphics Options

An option screen is being constructed, the graphics section of which is being broken down into two modes; basic and advanced.


Basic Graphic Settings

The basic graphic settings will contain sliders, check boxes and lists which will control how much the engine will focus on gaming performance. On one hand the engine can be set to focus on filling the view with as much detail as possible without affecting the structure of the game, on the other hand the engine can be set to focus on filling the view with as little detail possible, again without affecting the structure of the game because certain gaming entities must not change in appearance.

There is a significant increase in performance when you reduce the amount of visuals on screen. Performance is further improved by reducing the amount of animation and special effects performed on entities which have no interactive attributes or little impact on gameplay.





The challenge in developing this part of the engine comes with determining how simple a scene can be allowed to look. Reducing the visuals too far will make the visuals look out of theme. Visual reduction is significant here because of the goal having this game perform on budget hardware.

Besides the engine priorities, you can also select the resolution of the game in basic mode. It seems you will be able to do this without the game being reset; however the scene will need to be reloaded. In the worst case scenario I will also have to reload the physics simulation due to DBPRO resetting DirectX resources when the display mode is changed. For this reason and for other reasons it seems Sports Fiction will not run in exclusive full-screen mode; only full screen desktop. I never liked playing games in exclusive screen mode anyway so I will not miss it.


Some players will be interested in having much more control over the visuals to best suit their hardware and style of play. For these players an advanced graphics settings component is being developed for the menu screen.


Advanced Graphic Settings

There are a number of sections being developed in the advanced graphics settings component, the names of which have not yet been decided; but I will introduce the types of settings you will find.

General rendering settings include rendering resolution, CPU/GPU usage, multi monitor settings, brightness, contrast, smoothing and saturation.

Other rendering settings being provided will allow you to control how much optional visual content is permitted to be rendered, and how far away such visual content is allowed to be positioned within each rendered frame.
In a previous update I discussed the development of in game sites which determine what content should be loaded according to the player's point of view in the game universe and any nearby player.

Quote: " The standpoint of the player is being used to determine what sounds, images and geometry belong near the player and other nearby players. This is to be performed as they all move through different parts of the worlds. The physics simulation is required to load collision data and interactive entities near the players, while the rendering process is required to load what the local player is likely to be able to see from their current position."


The distance and detail of such entities can be tweaked in the advanced graphics section of the option screen. You will not be able to adjust the view distance of interactive gaming entities or obstacles but many of the visual effects and detail entities can be compensated for improved performance. You can increase the rendering distances to improve the visual quality if you would like to show off your graphics hardware. This concept will be discussed further in the next section of this development post.





Render Distance Falloff


Render distance falloff is a property I am developing for the engine which handles how detailed the DirectX 9.0 visuals are allowed to be, according to how far away from the player the details are positioned.




Some entity classes have had level of detail programming implemented to reduce the polygon count and draw call count the further away from view such entities are positioned. These entities eventually get taken out of visibility before being removed from memory when no longer required.



As shown in the following screenshot, the stones closest to the first person camera have more definition than the ones further away. The settings used in these Direct X 9 screenshots are for illustration purposes; the levels of detail will be handled differently in the final product, and any Direct X 11 alternative.





At the moment the transition between included and excluded visuals is instantaneous, they do not fade in or out gradually. DBPro provides an instancing system which allows you to duplicate objects without using up a significant amount of additional RAM, but this also means any object fading within a single instancing group are all faded together; the effect of fading out distant objects will require a extra work.

Rocks are not the only entity class which require a different level of detail according to their distance. The terrain is also set up with its own LOD system. Any Blitz terrain object has such LOD features built within its API, any custom terrain has a set of alternative meshes providing different levels of detail.
This is the same for some of the trees in the system, however most large trees currently have just one level of detail at present. In the final product I would like to provide more optional levels of detail, especially for forests and jungles.


Trees are tricky because they are also obstacles; players must be able to hide behind trees without worrying about opponents having their view of the obstacle removed or reduced between them.

Depending on the tree shading system being used, since there are a number of tree rendering techniques and resources by Evolved Software and Gothasoft being used so far, there are a number of ways in which trees can be reduced in detail according to their distance from the player.
As shown in the following screenshot I have illustrated how we can use low poly trees in the scene renderer without losing much quality.




Since Sports Fiction has open world features; to get it to work on budget hardware, low poly trees will be required. I can increase the polygon count used to form trunks and branches as I see fit. I can also increase the amount of leaves shown. Most of these decisions will likely be made after fully testing the gameplay in various sports. Building the rendering system from scratch helps provide enough flexibility to tweak where I see fit.

At some point I will be testing some of Matty's billboard functions to see how I can draw a distant tree on a few polygons, but the rendering performance has been slightly better than expected so far on budget hardware, so this can wait.
Grass has been the primary focus during the last development session. There was never any major grass plugin for DBPro, so I had to build something from the ground up, since placing a million blades of animated grass along a surface in an open world simulation on budget hardware is not going to happen without at least a little organization in Direct X 9.

The grass system consists two rendering techniques, one which is shader based, something I developed last year which I have not yet put into the real game. The pixel grass shaders will be added in after a bit more work on other more crucial areas of the game. The pixel shaders will be more crucial for grass in the distance, and from high altitudes whilst the player is in flight or climbing mountains. I also built a nice pixel shader which renders medium distance and some close up grass effects on flat surfaces.
The second grass technique is 3D mesh based which is what I will discuss in the next section, something I first worked on a few years ago, and once again a few weeks ago to incorporate multiple levels of detail and for streaming the grass into the simulation.

Streaming Grass


There are two main game map classes in Sports Fiction, open and closed. The open maps are used in the main game to represent the surface of a planet or regions in outer space. These are broken down into sections allowing the players to travel from region to region. Closed maps have borders, the players cannot travel to other regions by going past the edge of the map. Closed maps are used to seal off open areas or are used in competitive matches or PvE challenges to provide a more precision in design.

The open maps are so vast that it is not possible to load them all at once, and in some cases it is not possible to store them in raw form locally; for this reason it is necessary to stream content into the simulation, transferring content from storage to be loaded into view. Storing all the blades of grass in standard objects is just not practical because of the amount of disk space it would take up. The streaming process is used to load some of the grass from disk, and calculate the rest of the grass in real time.

It is not necessary for me to make the grass generator perform its job during gameplay, since I can bake the grass entities to a compressed format to be later loaded into action as players move throughout the world. But making the grass generator a real time effect would be beneficial for stability and for reducing the download size of the finished game; the more I can generate in real time, the less I have to pack into install files, the faster the download speeds.

Progress so far
So far the performance of the grass is much better than I expected early on, and looks better than it deserves to look given the amount of work yet to be done. I have reduced grass rendering distance quite a bit, but I expect the pixel shaded grass to come in and improve the look of the terrain in the distance later on. I am confident I can get 40-60 FPS on budget hardware since I am peaking at 45 FPS in an un-optimized engine on below average hardware. Top hardware should produce 200-300 FPS given the same scenes. Building the rendering system from scratch helps provide enough flexibility to tweak the performance where I see fit.






The grass currently consists of 3 types of meshes.


One mesh contains real blades of grass which is to be animated by a vertex shader. This high detail grass object is instanced across the surface of the terrain. I have not yet developed its pixel shader which will be required to make the grass slightly reflective when wet, and somewhat more detailed when zoomed in.

The second mesh represents medium detail. It consists of stretched planes and polygons to be animated much like the leaves on trees.

Third mesh represents low detail, it features the least amount of polygons of the three.

The second and third meshes are not instanced, these are independent entities with their vertices aligned to the surface of the terrain.





Issues so far
• The medium and distant grass polygons have layering issues which cause nearby blades of grass to rub out blades of grass behind them, making grass in the distance look like there are blades of grass floating in mid air. A search for the best transparency mode and ordering settings may lead to the solution when I get around to working on the grass in future
• I need a way to use fewer instancing resources when using the high poly grass in Direct X 9.0
• Editing the vertices in one instance will affect the appearance of all other instances in the same group; for this reason the hi poly grass entities can only be accurately placed on the terrain if they are kept small, which also increases memory usage.
• Dropping distant polygons may interfere with gameplay, particularly in long range combat sports or battles where players or robots hide behind plants.
• Wind effects will be difficult to apply on instanced grass blades since these all share the same shader instance; the wind will blow in the same local direction which will not take into consideration the random rotation of the high poly DX9 grass instances. Wind effects will be a nice supplementary feature for golf, archery and other range sports.
• Terra forming the grass during gameplay is not feasible; this is not a requirement because of grass baking, but would be beneficial if I can come up with a way to terra-form the grass with no lag.
• Calculating grass normals takes roughly 2 to 3 seconds on a terrain which spans about 1KM square. This lag is too long for gameplay, but this is not a major concern because normal calculation is only important for hill and mountain grass; runtime calculation is a bonus rather than a necessity.
• A pixel shader is required for lighting and environmental reflection on the grass blades close to the rendering camera view, not to mention shadow mapping on high level hardware.
• The rendering RAM usage peaks at 600 MB, which is a bit much. I can reduce this by reusing more of the content with instances. This needs to be lowered down to around 250-300 MB because I need the extra RAM for the character animations and preloaded renderer content.



I will post a number of screenshots of me playing around with the system in its infancy.
















Next development task

I will now be getting back to work, focusing on the displacement and vector effect functions. These effects are going to be used to generate much of the game's dynamic entity visuals and player constructions. I will post the next development progress update relating to such topics.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 27th Apr 2016 04:24
This is coming along nicely, I like the use of color themes for the different game types / maps and the grassy field is looking really nice. Vegetation eats up performance like nothing else and really does require some of the most careful optimization to find that balance between looking good and performing well.

The specularity does look to be a bit high on the tree bark though. Also, one trick I've seen to help reduce the hard seam between standing grass and terrain when the colors don't quite match is to make the bottom of the standing grass be a short alpha gradient, it helps blend it in to different terrain textures better, you have to be careful though or it can make it look like the grass is just floating. This method works better on thinner stems than thicker ones.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 22nd May 2016 16:17 Edited at: 22nd May 2016 16:22
Thanks Ortu; the grass alpha effect you mentioned is something I have on my list, but the alpha issues at the top of the grass is still a problem. The specularity is pretty much untweaked at the moment, most of my screenshots will look out of balance for quite some time but should improve once the visual control panel is ready. The tree bark is currently using a shader I did not create which will be changed later on.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 22nd May 2016 16:19 Edited at: 10th Jun 2017 10:18

Sports Fiction - 24/04/16 Single Player, Multiplayer, Short Grass and Cave Geometry


Greetings all. It has been quite some time since I posted a development log, as you may of guessed I have been tackling development issues. Thanks for your comments, some comments can be extremely useful if not crucial for making progress.

This development progress log is related recent works in improving the performance of Sports Fiction's DX9 land generator, my second discussion related to its development.

Before I mention the latest development works, I will spend some time talking a little bit about two modes of play, namely single player and multiplayer modes, with the single player mode allowing you to play cooperatively with your friends in campaign objectives.

A few posts prior I introduced a number of goals and principles for providing value for players, a variety of game modes to suit different audiences and states of mind, given the context of playing alone or with friends locally or on the internet.

I would like to put out a number of trailers, official screenshots, game footage, and most importantly an unstable early release followed by a stable release as soon as possible. I will need to see how well the next 5 weeks of game development progresses, by then I should have a clear understanding of whether the earliest releases will feature single player, multiplayer or both game modes.

Release
I hope to release both modes as early as possible for field testing, promoting, raising funds and correcting unforeseen issues. I imagine that the single player will not feature any voice acting, and the multiplayer will not feature all 12 battle sport maps mentioned a few updates prior, and all the universal olympia sports; but there should still be plenty to do in the game, and it should take the players quite some time to advance through what is put out early.

I will also need to send out a few install packages for performance testing a little while before the first release.


Current Development Session
The current development session was spent focusing on graphics and performance in DirectX 9.0; the next development session places character interaction and definition as the main focus; something I consider to be the most important development session of the whole project, followed by item interaction. So this could be one of the last weeks working on the current version of the land generator. The summer time will be spent working on the story, sound and the multiplayer service.

As I stated previously my main focus for Sports Fiction will always be its gameplay, but there are many issues which demand attention outside of the game-world which from time to time prevents me from focusing on the gameplay.
I will now go on to discuss a few points about the single-player and multi-player structure of Sports Fiction.


Single-Player

I would like to entertain players with a refreshing, yet true to the origins of story based video gaming experience.

One of the most outstanding concepts for the single player, besides featuring a fictional futuristic sports federation with arenas across the galaxy, is its delivery of character interaction and dialogue by using a familiar form of storytelling, yet a form which is uncommon in video games.
The form of storytelling in sports fiction is being derived from popular mediums of entertainment.

Being familiar amongst many gamers, the format will be quite easy to understand in early stages, since the format is nothing new to them; yet as the game progresses, the number of challenges and issues are increased to keep the player guessing within an arrangement of suspense, combat action and sports play.

The format will be entertaining to watch, not just play, since may gamers are interested in streaming or video publishing their experiences, or may not be interested in playing the single player but are interested in seeing the story.



Cooperative objectives will be introduced at certain stages throughout the campaigns; these allow you to invite your friends, family, spectators or followers to join in the action, aiding your characters to victory.
The single player will provide a number of linear and non-linear objectives arranged in a series of campaigns relating the characters you encounter in an arrangement of expansions which are to be called episodes.


Multi-Player

I am aiming to have this Windows based game provide a variety of means of interaction between players over the internet and on local area networks on a budget as-well as for high quality gaming, improving the performance of the network code as the game matures later in the year.

Based on my observations of online gaming I will need to establish a means for players of varying levels of gaming experience and styles of play to come together and enjoy certain aspects of game genres they may not have tried before, whilst enjoying other aspects of the game which are based on genres they favour.

An approval score mechanism will be implemented to reduce the negative impacts of providing a free edition of Sports Fiction; hopefully a free to play version will be made available with a number of constraints for interested players who want to give it a go before buying the complete game at some point in the future.

The low cost of the game can attract a lot of cheaters and unsocial players who could easily purchase new accounts when banned for wilfully violating the rules.



The approval score will award fair play, cool behaviour and professionalism; whilst apply penalties for cheating, rudeness, poor behaviour and spoiling. Like all features in the early releases, the approval scoring will undergo a series of crucial fixes to tweak its impact on the overall social experience.
Most of the multiplayer and single player details will be provided in the game. I will be briefly summarizing topics relating to the modes as time progresses prior to release.


Land Generator Surfaces



An entity surface algorithm has been under construction for quite some time which is being used to render caves, cliffs, mountains for the land generator, as well as advanced characteristics for items, vehicles and machines in the game world.

I did not get as much of the surface algorithm completed as I would have liked at this stage, as you can tell the look is not quite up to standard, there are a number of errors with the surface generator and its compilation process is rather time consuming.

There will be at least 2 or 3 weeks to spend perfecting it before focusing on other functions for the game for the early release; so I am not worried about these errors at this moment in time.

What has been completed so far is not half bad, but is nothing comparable to what it will look like when refined.


Animated short grass

The DirectX 9.0 based generator settings contain parameters which control the height, density and type of grass used to decorate landscape. I worked on the animated tall and medium grass last month, this time it I worked on the more difficult animated short grass.

It takes quite some time to get it to work which is why I did not attempt implementing the shader with the others in the last development session.

There is a significant decrease in performance when you increase the height of the short grass, so I have to find an optimal setting before the engine introduces medium sized grass.



I look forward to working with DirectX 11.0 features which I expect will make this process much easier with its more comprehensive set of shader commands; but that will have to wait for when the X11 plug-in can be implemented after the first batch of releases; I first need to finish what the vanilla X9 functions need to perform for the early releases.

This short grass technique will be useful for when I need to put together golf courses, soccer pitches and other turfs for advanced outdoor sport.


Smoothing

A number of smoothing techniques still need to be developed here. The vertex normals are not working properly due to an error in the code somewhere. A subdivision process needs to be implemented to smooth out the sharp edges at close distances from the view. The UV coordinates are also invalid, but the cause of the problem has been found.


Instancing

Instancing is something which has already been well prepared during the previous development session. I will be using the imposter plugin to enhance the instancing process further for better performance at some point in the year.

The instancing process is maturing quite favourably. Here we have a series of rocks, patches of grass and sticks generated along this surface entity used to create the following cliff edge using different generator material settings.







The potential is there for smoother edges which I mentioned before. There is a great deal of potential for this technique and I intend to use it to enhance the look of Blitz Terrain objects which do not allow you to use shaders directly and only permits a change of blend modes and textures due to its inbuilt rendering system, but the Blitz Terrain library is still a good foundation to build on, quite literally.

I will be using the X-Producer editor and Blender to extract the terrain for further refinement later on.

Instancing is quite a broad development subject matter, the technique will not only arrange rocks and grass along terrain, but asteroids and particles in outer space.

I will conclude this development log here since there will be a number of updates coming early next month which you are recommended to visit back for. Have a good day.








hakimfullmetal
9
Years of Service
User Offline
Joined: 17th Feb 2015
Location:
Posted: 24th May 2016 16:31
Can we get some videos of this in action?
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 26th Jun 2016 10:19 Edited at: 26th Jun 2016 10:20
As soon as possible; not long from now there will be plenty of videos to watch; videos galore. I will only be releasing trailers, soundtrack videos and early release gameplay footage.

I will not be publishing the bare bones footage; it would not be a good idea since such footage would give the wrong impression compared to the publishing activities which are to commence in a month or so from now when you can probably play the early release of game let alone watch it.

Thanks for your interest.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 26th Jun 2016 10:55 Edited at: 10th Jun 2017 10:14

Sports Fiction - 24/04/16 Single Player, Multiplayer, Short Grass and Cave Geometry


Time for a brief update, as you may of guessed I have been busy preparing the final foundations of the game.


This development progress log is related to recent works based on character interaction, character development and a little modelling prep work.
I previously discussed a little bit about the two modes of play, the single player and multiplayer modes, with the single player mode allowing you to play cooperatively with your friends in campaign objectives.


Whilst working on character development I will be implementing as many features for customization and personalization so that you can best represent yourself or your character concept in the game-world without too many similarities with other players because it sucks to see other player characters who look just like yours, if you spent a great deal of time trying to make it unique.

As I mentioned before, I will decide in mid July whether or not the first release of the game will feature a single player mode. So far so good; all I need to do besides develop the story and character back histories is tie things together in the game world and systematize the character contacts who can provide challenges, missions and day jobs and other Sports Fiction concepts which will be explained in game.



Current Development Session

The current development session was spent building the character editor, testing a number of animation procedures and developing a secret entity editor which I hope to also release nice and early because it allows you to construct some really cool things.

I spent the early part of the month on the editors, and the previous week preparing for a major 3D world generation and modelling procedure to commence shortly. I will need a functioning world to place the characters in, and so most of July will be spent on AI and geometry.


I spent some time implementing way point functions for the AI which will be important for me to play test certain situations before testing in a closed and then opened alpha version of the game. The AI is required for the players to race against, fight, micromanage or interact with given the story arc or sport chosen.
I will illustrate the concepts of the game in more detail within the game, in the documentation and on web pages to be put up in a month or two from this post, roughly when the first release should be ready.



As the year progresses, bugs will be tracked and fixed, new sports added, new features added and the graphics improved.






seppgirty
FPSC Developer
14
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 26th Jun 2016 15:36
The screen shots look fantastic. Love the idea of single player. It's great to see the light at the end of the tunnel for this. You've put so much time and effort into this. I know it will only be an alpha release, but i think this will be the fun part for you seeing your creation come to life. Great work.
gamer, lover, filmmaker
wattywatts
14
Years of Service
User Offline
Joined: 25th May 2009
Location: Michigan
Posted: 27th Jun 2016 18:31
Can't wait man! This is like the longest running dbp project, mad respect for still sticking with it.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 10th Aug 2016 21:04 Edited at: 10th Aug 2016 21:08
Thanks alot.

I am getting very nervous about the players, the hackers and the trolls. A lot of my 'final month' before pre-alpha release is about dealing with the unexpected, protecting the players from each other and the big bad internet.

Sadly the story campaign has to come later on in the year because I am going to need to spend more time writing and will need to get more funds so I can get hold of some voice actors and content creators. That part will most likely occur in October/November, aiming for a full release hopefully by December.

Pre-Alpha-1 v0.7 should be going out at some point in the next 4 to 5 weeks. I need to get 0.7 onto steam in about 5 to 6 weeks otherwise I am going to struggle with finances.

Nobody on steam is expecting what I going to put out so I really want to give the steam community a real good shock and something to think about in September. Hopefully nothing gets in the way so that I can get some early interest; there are similar games out there, but not quite the same; and I know what I can do give the player's what they want.

I have finished my game installer package and most of the rendering pipeline. Got a little bit of server work and patch deployment work to do.

Battle sport template is done (I just need some basic AI functionality). Racing is doing OK, a bit jerky because I had to abandon PhysX joints (Don't like em). I was hoping to use joints to allow players to construct their robots etc. but I had to create my own joint system.

I also had to abandon Blitz Terrain (Not the right type of game for Blitz Terrain with its fixed rendering capabilities and I have fallen out of love of heightfields in general; I am going full mesh).

Got the male and female character mesh templates ready, now time to polish up and write some anti-cheat code and refine the player experience. It will be interesting to see how far I get this month, if nothing goes wrong I should be posting up an install package and some footage. The game will explain how to play so there is no need to read a lengthly manual.

Should be starting off with world record competitions, battle sport, futuristic golf, land/air/outerspace races, parkour, skeet shooting and other foundational sports wrapped up in the player management system.

Would really like to see the football (soccer) sports in the pre-alpha, but I do not know if it will be ready in August. Car racing is not quite there yet, but I should get some rally driving support in September if things go well.

Oh well, at least the number of activities in the game will increase with time and community support. So as long as I keep busy and show dedication things should work out.

The game will always have a free to play edition with the option to purchase the standard edition for additional features and access rights. No microtransactions, no pay-to-win. I will be preventing 'insta-noob-beating' exploits and other typical modern day gaming problems just to name a few.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 11th Aug 2016 00:01
Luck to you on steam, looking forward to trying this out


A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 11th Oct 2016 11:10
Development Status

Hi guys. I am posting this development update to let you know there are has been major delays in getting the game server ready for action which is the main requirement for putting out the first release build of the game. This will have an impact on the production of marketing material, videos, screenshots and other media.

The screenshots in this thread will be inaccessible for a number of weeks before I establish the in house HTTP server.
On a positive note the programming for the player account management on the backend has gone really well; clients can connect and can host a number of players. This took longer to test than expected but is pretty much ready to run. Now all that is left is for me to link all user interfaces together and complete this new terrain and map building code for me to insert the game code into and fire away. After that I will need to spend a week or two making things look good and then we are good to go.
I will be doing some part time work for a few clients for the required income, but things should brighten up throughout October and November.
seppgirty
FPSC Developer
14
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 11th Oct 2016 23:17
Take your time and get it right Chris. With all the time you have put into this you don't want to start off on the wrong foot. This should be a nice January release.
gamer, lover, filmmaker
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th Oct 2016 20:51
Thanks for the tip. The SF project is the priority; but I had to work on a social media and software development project for a client for some quick income, but I will have to be tougher on time management because the contracted clients are a bit sluggish and undermotivated at the moment which has had an impact on my own motivation. But even if it is just 30 minutes I always try to get something done every day. It kind of sucks to be practically 300 or so hours of development away from first release, but to no longer have that lovely 60 hours per week like in August.

The positive side of the delay is more time figure things out and more time to study the trends of the industry with new games and technology to see what I can learn.
hakimfullmetal
9
Years of Service
User Offline
Joined: 17th Feb 2015
Location:
Posted: 29th Oct 2016 18:16
Hang in there.

Regarding the trend, it seems that chasing the latest bell and whistles to achieve 'realistic' graphic, especially with DBPro, we'll probably get left behind.
But it seems that if we use more 'artistic' art direction, then it doesn't really matter if the graphic tech is old.

For example, look at this 3D model from Ar Nosurge. There are no advanced/physic based lighting applied. It's all on the artist superb modelling and texturing art sense.



Also this old game made with DBPro still holds up its artistic style pretty well:
http://gamejolt.com/games/which/1523
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 10th Nov 2016 19:15
I agree with you 100%. From the beginning, I always placed comic book art style as my main inspiration. It is just a mater of time before I can implement it.

I also designed my own 2D anime sketching method, as a way to develop my own unique character theme. I might use this method for some Sports Fiction backdrop art, but for the most part this is for my next game which is a bit more 'Japanese' in style. I'll probably start building it in 2018...

The shaders required to produce such an artist result require a handful of vertex, pixel and post rendering craft, but definetly important to help you stand in a crowd.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Nov 2016 23:02
So a number of important prerequisites have been obtained, and a web server computer bringing you back the screenshots which have been missing for a few months after dropping my third party web host.

I have replaced PHP with Microsoft's ASP server side scripting platform which better integrates with the game's Microsoft based framework, enabling me to provide functionality between player web accounts and their game accounts more easily.
seppgirty
FPSC Developer
14
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 23rd Nov 2016 23:33
So close i can almost taste it. Are you looking at an early 2017 beta release?
gamer, lover, filmmaker
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th Nov 2016 12:38 Edited at: 24th Nov 2016 12:39
It should take about 250 hours to build the rest of first pre-alpha version. I have about 20 hours per week on average per week available for working on the game, which is not quite as good as the 60 hours I had between April to July each week, but still better than nothing. So in about 10 weeks or so I should have the first build ready.

In the final week of this development phase I will run performance & security tests on various machines and Windows versions.

Once all the high priority work is complete I can then go on to make web pages, a technical support forum, footage videos, merchandise and marketing material.
I will perform a low-profiled release with a download link made available in this thread and a few other websites. After a month or so dealing with any primary concerns of players I have not spotted or noticed on my machines, I will then focus on getting it onto Steam.

After a few months of funding through voluntary donations and full edition pre-purchases I will decide how I can use the funds to move forward; with newer versions of Direct X, migrating to DBPro 9Ex, hiring a team help me take things to the next level, and handling the viable top requests by players throughout the year with regular updates.

If the Battle Champions and Universal Olympia tournament concepts are enjoyed and well received I will also use the funds to get some competitions established and organized for the players.


Development forecast:
For the next week or two I am working on the micromanagement, player inventory, trade, currency and managing the meta game. For the best part of December I will be making things look more presentable and accessible, and arranging the audio.

Last week I finished the login and registration process with account verification; so that just leaves an update to the install and update automation script and then I am ready to distribute.


Following on from the brief discussion with hakimfullmetal a few posts above, the technology is dated and inferior to the AAA games out there, so I will need to make the characters and environment look distinguishable from the millions of video games out there so that when you look at a screenshot you know it is Sports Fiction without any logos or text shown; which will help popularise the game a bit more.

I hope Santa is listening so some unexpected idea gets sent to me so I can release this before Xmas.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 24th Nov 2016 17:01 Edited at: 24th Nov 2016 17:07
Quote: "
Following on from the brief discussion with hakimfullmetal a few posts above, the technology is dated and inferior to the AAA games out there, so I will need to make the characters and environment look distinguishable from the millions of video games out there so that when you look at a screenshot you know it is Sports Fiction without any logos or text shown; which will help popularise the game a bit more. "


I've been facing this myself, these days if you try to go with the realistic look, people expect PBR and GI or they won't look twice.

There's a reason why most indie games and even many lower budget AAA go with various combinations of highly stylized or cartoonish forms/proportions, and hand painted textures.

There is a sort of 'realistic but hand painted' style that i rather like, and is very doable in dbpro which helps it feel less dated, but i am just not very good at it :/

For SF, with a futuristic, technology setting, I could see it working with exaggerated hard angular forms, long thin lines and profiles. I dunno.

The real key to pulling off a unique and striking style when coming from something more basic and standard is to get to a look you are comfortable with, then push and exaggerate it further.


A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th Nov 2016 17:53
Yes, very important for me to try to pull that off. I need to do what you mentioned, and I need to turn disadvantages into an advantages.
hakimfullmetal
9
Years of Service
User Offline
Joined: 17th Feb 2015
Location:
Posted: 18th Dec 2016 14:13
How about these minimalistic style?
Looks easy to make. Easy on the eyes too.





Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 18th Dec 2016 16:02 Edited at: 18th Dec 2016 16:15
I have seen that video game on YouTube a couple times. It also reminds me of the visual style you are using in the Plaza project. There are indeed some useful features of such minimalistic design that I can take on board when decorating the levels.
I have been studying methods for visual styles for Sports Fiction. The game features comic strip elements, so I was very interested in using styles often used in graphic novels.

I want something more close to realistic than minimalistic because of personal taste and my prior investments in texturing techniques; however minimalism is a requirement given my limitations.

I was quite interested in what the visual art team achieved in the Borderlands series


After hours of weighing the options I have decided to put more emphasis on performance in the early months of release; saving all the visual enhancements for future updates with the benefits of having a hired team of artists.

In the early release I want the minimal visual settings to be able to render the game in a SINGLE PASS for maximum FPS (probably with shadow mapping switched off). I need to achieve as much as possible without advance shading techniques so that the standard Sports Fiction look will be consistent on all levels of the target PC hardware; with the option for more realistic visuals with the settings set at their maximum for faster PCs and professional gamers.


Whilst the weakness of Sports Fiction will be its level realism and modern technology, its strength will be in its social gaming and networking, multiplayer, general customizability and an advanced above average user interface and hopefully and eventually an above average user experience.

The convenience of engaging with your buddies, organizing a social circle and meeting similar people to play with will make it a beneficial gaming choice and a prime focus however realistic or minimalistic the rendering looks.
So we want all of that and to also adorn the visuals with just one rendering pass on minimal settings for maximal FPS without compromising the game's visual identity and its performance.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 21st Jan 2017 14:08
So, for the past few weeks I have spent the extra spare time working on making the character shader, and so far, it makes the characters look more like they are painted into a comic book which is great. This will make the game look more distinguishable. I will need to test the game with a number of multiplayer clients to see if I can get away with the extra processing load on the GPU and CPU. Once I have performed these crucial stress tests I can go ahead and refine the look of the character shader.

I have had to remove the Enhanced Animations plug-in because it was crashing the game; so this is quite a draw back and means I will have to spend weeks restructuring the character animation systems for the male and female mesh. All characters in the game use the same male or female mesh which can have its vertices transformed to make them look different. The character editor now allows you to choose what animations your character is set to make use of, this will allow you to personalize and further express your character creation ideas.

I have added easy to use mesh forming controls to the character editor, but will need to see how these characters perform in some stress tests before I can complete editor. I have also added my avatar caption designer to the editor for the players to design their own comic book style captions for their characters. All characters are stored on the server, therefore for every feature added to the editor, a database table needs to be synchronized with the client's perspective of their characters.

I have also put together the item and currency trading user interface which will require some network code to enable players to trade items in their inventory and pay entry fees and receive rewards from sports events. I simulated real time trading in the game but have opted for an event based system so that transactions occur when you activate an event, rather than having transactions occur over time intervals; this is better for getting more out of the game in a short space of time, and better for multiplayer encounters with players in different time-zones.

As of today I will be spending my spare time in the next few weeks restructuring the character animation, improving the look of the game levels and animated special effects. I will also need to get rid of all of the debugging visuals to make things presentable, which will take some time.
seppgirty
FPSC Developer
14
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 21st Jan 2017 17:04
Quote: "I have had to remove the Enhanced Animations plug-in because it was crashing the game; so this is quite a draw back"


That sucks, but you will make it through.

The rest sounds great. Glad to see the progress.
gamer, lover, filmmaker
hakimfullmetal
9
Years of Service
User Offline
Joined: 17th Feb 2015
Location:
Posted: 21st Jan 2017 17:27
Quote: "making the character shader, and so far, it makes the characters look more like they are painted into a comic book which is great. "


Screenshot?
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 21st Jan 2017 19:00 Edited at: 21st Jan 2017 19:01



Quote: ", it makes the characters look more like they are painted into a comic book which is great"


Pics or it didn't happen

Quote: "I will also need to get rid of all of the debugging visuals to make things presentable, which will take some time."


yeah, I spent a significant amount of time and effort to restructure my project to manage multiple build scopes such as development vs production. Its worth it though, in addition to making it more presentable, you should see some performance gains once all debugging is stripped out
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.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th Jan 2017 17:37 Edited at: 30th Apr 2017 19:02
Many thanks for the motivational and inspirational points.

I suppose I will show a little example of there direction I am going. Attached is an image of a character's legs and hand in a blank game level in the engine. The light is on the left hand side. There is no shadow mapping in my game yet. The shader is by no means finalized; it is just a bit of a test to see how certain lighting effects and pixel shading would turn out for when more time is available to improve the look. The textures are placeholders. I expect to spend a number of weeks creating texturemaps for the process. I expect to spend another month after first release improving on the look of the game after the first channel of play tester and general player feedback has been received. At this moment in time my focus is on levels and animation.



That's as much as I can permit myself to reveal at this moment in time. I do not know yet how many of these characters and how many entities can share this theme in a game and not slow things down too much on low end machines. Please don't ask me how I did this (not yet anyway )

I will not be showing much for a while, but we will very definitely have plenty of screenshots and videos uploaded right about the same time I expect to share the first download link.

I have everything locked down because of the many problems I can cause myself when showing unfinished content or unconfirmed content of the game at this stage and there are too many game template using copycats prowling around in recent times of this ever expanding development 'Clone War' and its champions buying out vast drag and drop content libraries and automated development scripts distributing AAA titles and calling them original; and people will buy and play them without any care.

Although ideas have been implemented years beforehand, and ideas will always be copied, just be careful as developers to not to be copied at the wrong moment in time. Especially when you have invested a lot of time in a marketing plan.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 25th Jan 2017 20:43
Quote: "I have everything locked down because of the many problems I can cause myself when showing unfinished content or unconfirmed content of the game at this stage and there are too many game template using copycats prowling around in recent times of this ever expanding development 'Clone War' and its champions buying out vast drag and drop content libraries and automated development scripts distributing AAA titles and calling them original; and people will buy and play them without any care.

Although ideas have been implemented years beforehand, and ideas will always be copied, just be careful as developers to not to be copied at the wrong moment in time. Especially when you have invested a lot of time in a marketing plan."


Do you feel like Someone's World might be encroaching a bit on Your World?

Nice looking toon shader there! The outline seems a little thick at this close up distance, but if it thins out as the camera pulls back its probably fine at a normal 3rd person gameplay distance.

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.
hakimfullmetal
9
Years of Service
User Offline
Joined: 17th Feb 2015
Location:
Posted: 25th Jan 2017 22:26 Edited at: 25th Jan 2017 22:29
Nice cartoon looks, reminds me of Borderland, Ookami, Street Fighter 4, and even the old Superman comic style look.
If the game had similar effects used for environment effects (water splash, explosion, hit/impact effects, ect), it would be really thematic.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 29th Jan 2017 13:53
Quote: "Do you feel like Someone's World might be encroaching a bit on Your World"


I hope not. I will always strive to make that as difficult as possible.

Quote: "Nice looking toon shader there! The outline seems a little thick at this close up distance, but if it thins out as the camera pulls back its probably fine at a normal 3rd person gameplay distance. "


Thanks, I hope that it will convince people to forgive me for dedicating less time and effort on visual realism than the gameplay.

The outline does look too big up close; and disappears when at a certain distance. I will use the level-of-detail functions to scale down the outlines as they come close to the camera, and scale up as the characters move away.
I do not think I will be able to outline everything in the scene because of time constrants, at least before more resources are made available, so I will need to play around with ideas.

Quote: "Nice cartoon looks, reminds me of Borderland, Ookami, Street Fighter 4, and even the old Superman comic style look.
If the game had similar effects used for environment effects (water splash, explosion, hit/impact effects, ect), it would be really thematic."


Thanks. The plan was always to build a comic-book game based on fictional sports so it also makes sense for it to look like one. It is just a matter of coming up with a style I identify with and believe in. I look forward to seeing how the visual progress.


One of my main concerns is releasing the test game with just one server with the fastest domestic broadband internet package available in the UK which pretty means having all players connect to a server with one of the worst national connections in the world.

So the first experience might turn out to be a laggy one. Players will have to connect through the nearest server (which means London for now), unless they opt to switch on direct connection to other players with port forwarding, or setup their own dedicated servers. We will see what happens.

The three worst things I am expecting to happen will be 1: Nothing works, people fail to connect. 2: Too many people attempt to play at the same times with no one running dedicated servers. 3: Too few people attempt to play at the same time leaving them with no one to play with even if the connection is perfect.

One thing is for sure, I will need some decent AI prepared to entertain while the player population is low and server equipment is limited.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 29th Jan 2017 19:30
Amazon Web services is a pretty reasonably priced option for spinning up a remote server with a better connection.

The issue of getting people on at the same time is a big one for a new, reletively unknown game.

I think the best way to handle this is an official server open only at limited scheduled times during an early beta period.

This helps find and fix connection issues with a limited group that's easier to coordinate and communicate, it focuses people together at the same time.
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.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 2nd Feb 2017 15:37
I will take that into consideration. A dedicated windows host would be ideal for me so that I can install and run delegated servers remotely. Later on in life if I can afford it I will pay for continental service teams to handle the running of the servers while I focus on maintaining and building the software.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 2nd Feb 2017 19:56
https://aws.amazon.com/marketplace/pp/B01H4DL31U?qid=1486064432426&sr=0-1&ref_=brs_res_product_title

t2.medium instance gives you a 2 cpu, 4gb ram windows server 2012 for $0.065 per hour, you can spin it up and down for scheduled sessions as needed, or leave it running 24/7 for around $50 per month based in east coast US

That's a decent baseline spec and you can of course adjust instance type based on disk/ram/cpu needs

https://aws.amazon.com/ec2/instance-types/
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.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 4th Feb 2017 15:08
This is a timely and useful information Ortu, thank you. I am going to give it a go when the time comes to test.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 5th Mar 2017 08:11 Edited at: 5th Mar 2017 08:14
This is a brief development log indicating my strategic project activities over the past 40 days preparing the pre-alpha. Since in today's evolving video gaming industry the definition of 'pre-alpha' can mean being a current release having been sold for $20 to $30 to 1,000s of players anywhere between 4 or 5 weeks ago and 4 to 5 years ago; but I must emphasize that I am talking about the technical definition which is the version prior to any formal testing.

I managed maintain a good steady game development schedule so that I could focus exclusively on the project. Given the increased resource of time, I made two quite literally game changing decisions in order to make the most out of the extra time, make the early release more fun to play and speed up the process. I would not have made these decisions if the development time was insufficient.


The first bold decision was to rewrite the DBP engine code from scratch in order for it to run smoother, compile faster and for it to be easier to provide remote updates of the game as I continue to work on it throughout the year. This has been a success with major aspects of code made 5 times more efficient. I am confident I will have the potential to run the game at 100 to 150 FPS strong on modern gaming hardware; and 50 to 100 FPS on budget gaming hardware; and can now spread the load more evenly over up to 3 CPU's; with the operating system and a minor number of temporary processing threads for the game on a 4th CPU. With just two CPU's or Cores, the performance will still be optimal with the buttons and UI unaffected by any lag in the game world and network.


The second bold decision was to develop a new behavioural artificial intelligence system for the basic AI implemented. I want the AI to react and make decisions based on how they 'feel' at the given moment, rather than using a simple set of difficulties and fixed tree of randomized sets of choices. Their analysis of opponents, line of sight, animations and equipment preferences are all affected by their class and current behaviour whether inherent or triggered. The behaviours and their affects are both inherited by AI class and unique to individual AI characters. Behaviours can also be triggered by events on the playing field or racing course.

I want to provide more PvE action in the earlier releases of the game because I feel that this might turn out to be one of the most enjoyable aspects of the early release; and is something entertaining which Sports Fiction can offer to players and their friends.

These major tasks were the extra struggle of the day for the strength of tomorrow.

As expected, futuristic battle sport with both ranged and melee combat, land and air racing, and golf are the most likely sports to be released in the first public version.

All gaming details will be provided in the game and online media to be put out this spring.
seppgirty
FPSC Developer
14
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 5th Mar 2017 20:43
You have been busy my man. Can't wait to give this a try. please, keep it up.
gamer, lover, filmmaker
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 6th Mar 2017 03:15
I will make sure the development keeps moving forward week after week now.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 2nd Apr 2017 14:17
This is a very brief update and thread refresh.

March was a very busy month for me working on the AI. This game will be enjoyable without any AI whatsoever, but one of my main goals is to allow the AI to participate and to overall deliver action packed PVE with as much engaging fun, progressive challenges, team working and personal skill improvement as I can provide the players.

So what was done:
• Designing and Building of the AI framework
• Create Blender python scripts for exporting AI design in the levels
• AI Behaviours for making the AI 'feel' like performing certain actions
• High difficulty smart AI decision making for best choice of actions
• Low difficulty dumb AI decision making for the worst choice of actions
• 3 branches of skill-sets (for AI and human players)

So the 3 branches of skill-sets will be used to and will be used to design the AI character's available actions according to their personalities and surrounding context; and will be used by the players to tweak their character's abilities to their needs. The surrounding context is generally the sport and current challenge within the sport.

We are working with just 3 branches to keep the skill system simple. Whilst major video games often use many more; I will have the SF skill system kept simple so as not complicate the already challenging game, which will make sense once it is presented and played.
The game will used named AI characters and unnamed categorized characters who inherit their characteristics, and can develop new behaviours depending on what takes place.

What I am working on now

• Hitbox debugging and handling of how AI spots the limbs of other players
• Getting the AI to form minor formations and make use of tactical positions and formations
• Getting the AI to avoid crowding up in cramped locations, and avoiding falling from heights

As always we will discuss this further as the development continues
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 1st Jun 2017 18:59 Edited at: 1st Jun 2017 19:03
The A.I. development project continues

I am now at the phase of constructing action objects for A.I. instructions to be described within the logical Blender models for the game levels. These objects tell the A.I. how to navigate the level, how to behave in certain situations and locations within the maps. Hopefully I will be able to have these instructions well adapted to changes made on the levels during the game by the players.



These action objects indicate whether it is OK to jump from place to another, where ladders are, wear the goals and objectives are, and how many A.I. players are permitted to travel the same path.

In the Dark BASIC professional we have A.I. players checking for items, teammates or opponents under their crosshair using ray-casting instructions like the one shown here:

Raycasting is the programming term for testing for collision along a line; in this case, the line of sight of the A.I.

The .NET host of the game section which contains the A.I. then checks what the A.I. has seen or is able to turn to see, and finds appropriate actions to perform, and filters the action based on the behaviours currently assigned.



The development between April and May was rather slow due to a busy schedule at work, but things are calming down and I am now able to work more frequently on the A.I.

Once the A.I. has been completed enough for early access, and after a few weeks of play testing against the A.I. in basic challenges, I will then start focusing on the advanced challenges, and getting the A.I. to travel with, and step in and out of vehicles and aircraft, so that they can fully compete.

I will be blogging the programming of this development A.I. system a couple or more times a week.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 2nd Jun 2017 02:22
ai is a lot of fun

how are you going about the communication between dbpro and .net?
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.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 8th Jun 2017 13:19
Quote: "ai is a lot of fun "


It is starting to become a lot of fun, and should have been, however a lot of issues came up outside of the project which became a huge frustrating distraction and has made everything take longer than necessary. I am about 2-3 months behind in terms of AI. I should be play testing the basic in-game-challenges with the public and uploading videos by now... oh well.

Quote: "how are you going about the communication between dbpro and .net?"

The best answer I can give is that there are multiple methods being used depending on the destination, frequency and scale of the data transactions.

I can't say what the methods are because of potential cheat, aimbot, triggerbot, and wall hack developers finding out too easily, at least until the hackers expose the method, then I will change the method when ever it gets exposed to keep them as busy as possible, for the game to be as much of a pain for them to write cheats for.




Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 8th Jun 2017 14:08 Edited at: 8th Jun 2017 14:14
The AI development project surges ahead

The past few days of development involved making a change to add third party functions to the AI for the purpose of speeding up the development of the game. This change should cut down the remaining AI development time in half by passing on low level operations to pre-developed plugins or libraries.
Today I improved the engine's ability to symbolize what each AI entity is thinking with the use of icons and hints. Depending on the state flag of the primary AI state machine, I can see what the AI is 'thinking' without looking at the a long list of logs assigned to each character.




Tracking the AI

When something programmatically undesirable is going on with the AI is missed or is not symbolized, I can always check the log which shows exactly what happened even where ever the character is located, even if several streets away.

For example, the log below indicates that this AI player, Player3, is missing an attack item does not feel like pursuing its targeted player as instructed by its current behavioural entity named in the brackets, where wisdom is syntactic sugar for programming purposes, and by no means the character attribute human player need to be concerned with:

Quote: " Player3 randomly pursues target Player: Player5(Object: 5191) because of having 8.0/10.0 wisdom (DefaultBehavior)
Player3 at -4506.8,4.1,-4465.8 attempts to pursue target Player: Player5(Object: 5191) at -4505.9,4.1,-4531.6 (PlayerAIController)
Player3 is unable to attack Player: Player5(Object: 5191) because he does not have a current attack item (PlayerAIController)
Player3 has changed pursuit duration to 00:00:20 (PlayerAIController)
Player3 attempts to pursue his target Player: Player5(Object: 5191) at -4505.9,4.1,-4531.6 after analysing the target. (The target distance of 65.78 may be out of range for any desirable attack) (PlayerAIController)"


The AI pursues anyway, which is not quite correct, thr first programming mistake in this situation as there is nothing to attack with. The player could not even use his bare fists because punches have not been added to his actions; which happens to be the second programming mistake.

Note that the log system uses nominative/possesive pronouns gerunds (he, she, it or his, her, its). The players in this example are both male humans; but could have been male, female, neutral or an object.


Skill vs Strategy


Thinking of the combat related challenges, it is going to be debatable as to degree of 'base-building' that is to be permitted in the sports. There is a varying degree of players who want to out play their opponents through skilled melee combat, to out maneuver and through accurate aiming, given the weapon. On the other hand you have the players who want to build bases, strategic obstacles and control a number of entities for the purpose of defeating the challengers remotely.
The more base building permitted, the more the AI path finding system would need to be updated on the server as players change the layout of the level.
For this reason, most of the actions in the combat sports will relate to character, vehicle and robot control. With a few building tools to construct simple prefabricated buildings or static components. Strategy will have to incorporate mostly movement of usage of entities, with a few constructable buildings/aircraft/spacecraft here or there.

Win because you or your team played well, lose because you or your team played poorly


At least this is what I want to occur as much as possible. This statement is what I am using to improve my design decisions so that the game level, design flaws and factors which are not the fault of the player to determine the winner of each challenge. Base building will need a level of moderation prevent exploits which make a victory a matter of placing a few walls and turrets in challenges not based solely on walls and turrets.

To emphasize what was stated above, I want skill to be the primary factor of victory; not the game levels, whether they are symmetrical or asymmetrical; because not all maps require balance because balance can be found in the overall challenge; each team/solo-player must be given an equal chance.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 13th Jun 2017 17:40 Edited at: 23rd Jun 2017 17:57
The AI gets around - Facebook Post

In this current phase of AI development the AI is able to walk and run through fields, streets, ramps and rooms. I have most of what I need to proceed on to the next phase, which is to get the AI to perform punching and kicking attacks, followed by grabs, followed by throws and then finally the shooting.
The final aspect of AI navigation will require me to program the necessary steps jump across obstacles and to find the best route from one room in a building to another building via streets, alleys, staircases, ramps or elevators.

Buildings and streets are not quite the what one expects to find in a typical sporting arena, but it will be quite common within the futuristic game for abandoned towns and derelicts to be purchased by battle sport corporations for reality TV styled battle-sport activities. Such abandoned locations are quite appropriate for mechanized-armoured players to enjoy destroying things without any citizens getting hurt.

I will come back to the AI navigation system for allowing the AI to get in and out of vehicles and flying-machines as well as for essential system tweaking. If required, I may postpone the development of elevators until after the pre-alpha release because there are more crucial entities that require immediate attention.


First attacks

As I stated above I will be preparing to work on the first attacks. I need the AI to be participants rather than zombies or bullet sponges. First job is to get them to punch, kick and perform melee combos just like the human player can. In non-combat sports which permit physical contact, the players can perform actions such as barging or nudging.

Icons, bars and other indicators found in games like Destiny and The Division will float around other players in a fashion permitted by your Sports Fiction character's attributes and level of momentum, something to be fully described in future.

I will be using collision shapes, particles and raycasting to detect impact and damage. Colour codes, icons, particle effects and sound effects will be used for both feedback for the player, and feedback for debugging. The objects which are carring out the collision and impact detection have been called active objects


The Active Objects

A system was built using DBPro for construction and deconstruction of client side entities which need to move around, detect impact, spawn sound effects, spawn particle effects and indicate events. These are the active objects, and they can be given a lifespan which when expired, they are set to reset, or get deconstructed.
These objects are called active because unlike most other objects in the game, these besides the players and machines, get updated every loop and can move around. Other objects do not move and so will not require iteration in most situations.


Performance measures


Limiting CPU recursions and iterations to only the objects which move is one way I am boosting the performance of the game.

The other way is by splitting the game code into four components (excluding the PhysX and AI plugins), 3 client-side components and a server-side process, thus allowing the rendering, active objects and other dynamic entities to have a dedicated core/CPU.

So instead of one game loop, there are four (with one taking place on a remote server). This should all work rather well on a quad core P.C. or Laptop. Even on my dual core PC, lag in the U.I. never disrupts the performance of the renderer and game simulator.

But there is still a lot of optimization to do, especially with regards the bone animation which will be a major task to take place after the logical aspects of the pre-alpha game is complete.
seppgirty
FPSC Developer
14
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 17th Jun 2017 12:29
The A.I sounds incredible. I hope it works out as you plan. Glad that you are making use of multiple cores. Keep it up and keep us posted.
gamer, lover, filmmaker
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 18th Jun 2017 14:52 Edited at: 23rd Jun 2017 17:56
I will do. It is always encouraging to see you post here Seppgirty.


The AI prepares to go toe to toe - Facebook Post

So, the foundational aspects of AI character movement are complete. The AI can go from one building into another, up and down flights of stairs or ramps, all with a reasonable amount of input from the level editor. That's most of what they need to do on foot. Hopefully, I will get this to work with player placed structures feature when ready.

I had to work on the jumping yesterday. It was not easy; and needs polishing up over time, but will be feasible for now. Now I have seen far worse examples of AI jumping in AAA games; there should not be a requirement for a lot of accurate jumping on their part; I hope... I'll work on it over time.

I have to work without animation at the moment. This is because of the bone update lag taking place in the DBP Sync command. For future animation I will try to use revenant chaos's jGpuSkin , (or a shader alternative) after the AI is able to fly, drive, shoot, kick a ball, throw a ball and strike a golf ball. There will be times for intensive combat sport, and times for some relaxing golf. I need high performance on a rather low end machine in order to make decent video footage. At least until I can afford to upgrade. Most of the animation will be procedural.


Next

The next task is to get them to use the melee attacks, defensive moves and tactical manoeuvres on foot. These are all to be routed through the behavioural state machine; or what can be described as behaviour determined choices of action. This state machine is so far the biggest component I have built for anything, in terms of number of lines of code.

After power-watching some of my favourite games from recent times and in past decades; I felt that players could do with more behavioural AI to challenge their emotional intelligence beyond dealing with other human players, and to engage them deeper into the games. I felt like I needed to deliver this type of challenge to the players with Sports Fiction.

As a typical example, rather than simply performing a common objective of: 'take out X number of mobs here, X number of mobs there and then the boss who is given extra hit-points', I want the players to be considering the impact of their actions on the mood and behaviour of these opponents and the boss. So players have to consider agro, and 'emotional' impact; or perhaps the player's will see agro as a type of emotional impact. In some cases players will have to please or taunt crowds to help manipulate mood of the AI. (more on crowds later)

Consider also that in some cases, you may have to team up with AI, although this should be rather rear, because who wants to team up with AI when you have friends.

Additionally, robotic AI do not have emotional behaviours. They will always do as instructed, if capable.

Here are examples of what kinds of 'choices' already coded into the AI state machine:

So, if the AI is really exhausted, mentally weak, and perhaps out of shape and carrying extra weight in the mid-section, they would slow down their movements, there would be a greater delay between their actions and they would not feel like pursuing long distance objectives. They will attack weaker opponents in battle sport. They will use ranged weapons rather than melee. They will stay inside an armoured vehicle if available. They will avoid running anywhere. Now there is a measure of slowdown for all players, not just AI; but this will be even more impactful in 'mentally weak' AI.

On the other hand, an angry, full of energy, argumentative and aggressive opponent who is jealous of the popularity of a certain sporting champion on the playing field may run alone at a great long distance to get close up, without delay, to use the most offensive and aggressive item/action in his or her inventory/action bar.

A bossy yet cowardly team opponent will run for the most distant place to take cover upon sight of a high damage ranged weapon in the hands of a superior challenger; taking three or four team mates for protection with him.

All of these kinds of AI behavioural attributes, particularly when inherent, will be represented as adjectives, which are to be prefixed, suffixed and documented via in-game hyperlinks. When temporary, they will be listed in the UI.


Although it meant delaying the progress by 3-4 months, I think it will be worth the stretch. I think players will enjoy dealing with AI drama, it always felt disappointing to see AI react the same way and take the same course of action most of the of the time. I did not feel like representing 6 years of work to a bunch of bullet sponges,

So here are the practical reasons why I think this system is needed.

1: Participation.

The early servers will be of budget technology, and empty at start, I do not have a real marketing budget to pull in the early numbers, nor the high end equipment. It will be a while before a Steam ready build is available. So players will need something to do while the player base grows. Let's face it, it will be tough to convince people to come off of League of Legends and H1Z1 to come and play this budget title. With this behavioural system, it may be desirable for people to come and play even when the player base is small. The players will always have an opponent who participates, and an emotional one at that.

2: Mobs

If required to make the online challenges between human players more interesting; players will be able to switch on mob spawning. Mobs will feature AI characters who are employed by the sporting organizations to prevent all teams from reaching a certain objective; they will be captained by one or more bosses, attacking on sight, but staying at their location. Well at least this is what they are instructed to do... The behaviour system will add an extra dimension to the challenge facilitating the means of tactics through emotional manipulation. Players with experience of the game can skilfully manipulate the mobs to into a position of favour, or perhaps luring the mobs into a defensive position to help defend an advantageous tactical location.

3: Robots

In the case of robots, no emotional behavioural system will be included in their state machines. This increases the level of complexity when the players are required to formulate a strategy. Now not only do they have to consider the human opponents, and the behavioural AI on their team and opposing team; but also the nature of robots on their team and opposing team. Unless remotely controlled by a human or behavioural AI, the artificially intelligent robots are not going to get emotionally manipulated. Now the players will have to come up with a plan B if their strategy does not consider to inclusion of robots which may arrive unexpectedly.

4: Raids

I believing using common terminology for designing the concept of the game because it will make it easier for players to learn. Although there will be a variety of sporting objectives, some of them will be quite similar to raids, commonly found in popular games. The players will form a single team, or perhaps with 1 or more opposing teams depending on what seems to work best for the game. They are then expected to complete an objective where they are to advance through a series of locations protected by mobs in order to reach an end goal. The behaviour system can, in this circumstance, provide a means of tactical advancement, and a means of challenge. Therefore, the enemies can be emotionally defeated before being knocked out, and on the other hand, a number of characters of a certain quality working together synergistically will pose a great threat to the players.


No two characters of the behavioural AI are likely to will react the same way to your actions. Now there's something to think about while thinking about pulling that trigger.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 23rd Jun 2017 17:46 Edited at: 23rd Jun 2017 17:50
The AI is prepared to make use of the SF control system ... and development updates will now be available on Facebook

Today's update will be a very brief introduction into the Sports Fiction control system.
I have also created a new Facebook page which is where all the minor development updates will be posted every 12 to 36 hours. I will continue to post updates on the TGC forum here once or twice a week to keep you up-to-date.


SF Control System

The control system for this game needs to provide a consistent way to play a variety of sports without having to always learn new controls. The control functionality has been developed to be configurable and shared between players profiles.

Most player triggered actions work by binding the keyboard, mouse and gamepads to a library of game commands.

The AI uses a similar means of control; for example, the AI uses the run forward command just like the human player uses the run command by pressing W or Up.


The control system arranges actions into 4 groups
• Key/Button Bound Actions
• Toolbelt Actions
• Technique Actions
• Favourite Actions

The first group are actions triggered by the keyboard, gamepad or mouse. There will usually be no graphical user interface for these actions.

The other three groups exist in the graphical user interface and will be discussed in great detail in future updates.

The toolbelt crucially holds up to ten items or actions buttons. Any usable item or action on the tool belt can be conveniently triggered with a number key. Items from your inventory windows can be dragged into the toolbelt. The toolbelt has its own inventory window which exists in the inventory system amongst bag and container windows, so you may also conveniently arrange the toolbelt in inventory window mode.

The favourite actions can be triggered by pressing Q or E, or any bound button. This action group is for storing and using frequently performed actions, and can be changed according to the actions available for the character and the current sport or game context.

The technique is an advanced context sensitive action group that it will only appear when a certain item, fighting style or playing style is activated. The techniques are to be arranged according to your desires and their format per context. Actions by technique are triggered by 4 directional navigation via a grid according to the ability of the character, and are both connected and affected adjacently via one-way or two -way modifying links.




Completed features of the Key/Button actions
• Bind keys with alternative key options
• Bind gamepad keys
• Binds with modifier keys (CTRL+ALT+SHIFT)
• Bind mouse movement to action
• Bind UI buttons to game command
• Save, load and share bindings

Features under development for the Key/Button actions
• Binding context (change buttons according to a situation)
• Combination keys (EG: press one button followed by another)
• XBox controller support


We will discuss the usage of actions in the next development update. At this moment in time the AI usage of the system is being completed.
seppgirty
FPSC Developer
14
Years of Service
User Offline
Joined: 3rd Jul 2009
Location: pittsburgh, pa.
Posted: 26th Jun 2017 23:47
The A.I. sounds completely insane. I'm afraid your bots are going to be so smart that they will take over the world. Just remember that i supported you Chris when you release these guys on the net.
gamer, lover, filmmaker
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 27th Jun 2017 13:14
Quote: "The A.I. sounds completely insane. I'm afraid your bots are going to be so smart that they will take over the world. "


Absolutely, I forgot to mention that I have I part time job for a company called Skynet, be sure to send us your address so I can send you some of our flagship prototypes.

Seriously, the AI is never going to be better than the human players. Sure I could develop an instant headshot function and an ongoing combination iteration of automated kung fu, but they could never out wit the human brain; we are dealing with incomparable levels of understanding, especially with my limited resources and experience. Let's face it, at best they are going to appear retarded in situations where numerical calculations are insufficient; and there needs to be a little bit of realism when dealing with AI reaction times and accuracy.

I just got to do my best to make them behaviourally interesting, tutorial-esque, and competitively challenging enough to be fun to anticipate and fight; while keeping the errors under control, and improve things over time.

But a certain class of player will never really consider bothering to play with AI, except when they need a little target practice.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 28th Jun 2017 14:49
The AI punches and kicks - Facebook Post

So far I have gotten the AI to select and use basic melee combat actions. For now I have added jab-punch and push-kick as their available choice of close combat actions. In the real game, the AI will have their favourite moves and disciplines.

Timing

Thus far each action can have a minimum and maximum usage duration, and recharge delay. While in usage, no other action can be performed. While recharging, the action cannot be performed until recharged. The minimum and maximum values are passed onto a basic ranged randomizer function.

Two problems which need addressing with AI combat.

1. I need to get the AI to understand that it is OK to use certain melee actions such as push-kick even if the target player is not on the same level of ground. For instance, if on the higher part of a ramp, it is still OK to use a kick move one someone below (in most circumstances thus far). At this moment in-time, the AI can only determine if the target is on the same level of ground, and whether they are in front of them, beside or behind. Another function which needs to be added is for the AI to try to get into the ideal position to use the best attack they have.

2. I need the AI to move around ramps to get into a more realistic and practical position for using their attacks. At the moment they are attempting to kick a target player who is on the ramp, when the AI performing the kick move is on lower ground and off the ramp. Kicking the ramp instead of the player is not very smart looking; it would be better to get on the ramp or use weapon or projectile.

Knockback

Knockback is something I am going to add to the push-kick action and similar actions designed for pushing, or knocking back, an opponent. This was not implemented into the battle sport prototype I built last year. When an action indicates that it has a knock back effect, the player who gets hit by the move will be knocked back by a distance determined by the force of the move and the weight of the character. I will apply a relative force to the PhysX character controller and select the correct animation.

Grappling


Grappling moves are also unimplemented here and in the prototype. I have already used item throwing in the prototype, and will use some of the functions there for getting the grappling moves to work. Instead of grabbing an item, the characters will be able to grab other characters if their level of strength and physicality permits. The grappling moves in the game will for the most part exist for the purpose of holding opponents into a position, or pushing them or throwing them into another. I will override the location and animation of the character controller according to the grappling animation.

Melee Q&E favourites


As introduced in the previous update, the favourite action buttons (alternatively activated by the Q & E keys) can hold any frequently used action. When not using a melee technique, the AI will select a number of their favourite melee actions before making use of them in an improvised manner. I will get the AI to use techniques later, after getting them to throw, shoot and drive.
I am considering ways to have all hand to hand combat actions listed for human players to pick their favourites, and their actions for building fighting techniques.

Login to post a reply

Server time is: 2024-03-29 00:18:23
Your offset time is: 2024-03-29 00:18:23