Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 99
» Latest member: Ivo van der Veen
» Forum threads: 233
» Forum posts: 981

Full Statistics

Online Users
There are currently 2 online users.
» 0 Member(s) | 1 Guest(s)
Google

Latest Threads
Arise dead book?
Forum: Scratchpad Games
Last Post: Brian Beuken
02-29-2024, 08:07 AM
» Replies: 0
» Views: 250
Im working on a Game..
Forum: Scratchpad Games
Last Post: Brian Beuken
08-04-2023, 10:58 AM
» Replies: 8
» Views: 13,797
OpenGL Error handling
Forum: Assets, Tools, Libraries and other useful things
Last Post: Brian Beuken
12-07-2022, 11:48 AM
» Replies: 0
» Views: 3,833
Rock Pi5B
Forum: Other SBC's
Last Post: Brian Beuken
11-12-2022, 10:14 PM
» Replies: 5
» Views: 7,604
Setting Up Bullet
Forum: Assets, Tools, Libraries and other useful things
Last Post: Brian Beuken
10-12-2022, 11:36 AM
» Replies: 3
» Views: 11,593
Building with a toolchain
Forum: General Chat
Last Post: junglie85
09-11-2022, 07:45 AM
» Replies: 3
» Views: 8,529
Window doesn't open on Pi
Forum: Help my code won't work??
Last Post: junglie85
09-05-2022, 01:28 PM
» Replies: 5
» Views: 6,150
Getting started on Raspbe...
Forum: Help my code won't work??
Last Post: junglie85
09-04-2022, 06:38 AM
» Replies: 8
» Views: 8,279
Bullseye on Rpi2/3
Forum: Help my code won't work??
Last Post: Brian Beuken
04-25-2022, 03:24 PM
» Replies: 8
» Views: 10,042
Disable OpenGL, for faile...
Forum: Help my code won't work??
Last Post: Brian Beuken
11-10-2021, 06:43 PM
» Replies: 7
» Views: 18,124

 
  NEON
Posted by: Brian Beuken - 12-27-2018, 02:38 PM - Forum: Assets, Tools, Libraries and other useful things - Replies (2)

NEON is a specialised optimisation system which allow the CPU to load in multiple chunks of data at a time and perform staggeringly fast maths on them by doing the same instructions on multiple values in parallel. Not as fast as a GPU but still quite a bit faster.

NEON is the ARM method, and its available on almost all modern ARM SBC's, SIMD is the intel version on a select few SBC's.

Now the fact is, I don't really get too involved at the lower end of a system, I have too many to keep track of, but it should be possible to get the compiler to optimise some of our code, especially the maths libs (though they may already do so) by asking the compiler to use NEON where viable.

This is no where near as good as writing your code with NEON in mind and using some of the specific NEON instructions, but it might provide a nice little boost if your project is maths/physics heavy and you find the performance is just missing the frame rate you need.

You need a post 2015 version of GCC on your system, and all you have to do is add  -mfpu=neon -ftree-vectorize to your gcc compile options.  (you can leave out the -mfpu=neon, but I found it reported much fewer instances were it could optimise). You also need to set the optimisation levels to 3 with -O3 
My compiler  CFLAGS currently looks like this.

-ggdb -ffunction-sections -O3 -std=c++14 -mfpu=neon -ftree-vectorize -fopt-info-vec-optimized


I have NO IDEA, at the moment what performance gain you will get, if any, but I hope that bullet, maybe PhysX and GLM will get some benefit from it. I will try to pop back to this sometime and give better guidance on how effective this turns out to be!

You can see if any optimisation is taking place by adding -fopt-info-vec-optimized  to your compiler commands (it does slow the compile time though) and reading the output.

This is quite advanced stuff and you need to really understand a little about registers and parallel processing, there's some decent info on the web and this I found quite helpful.
http://www.add.ece.ufl.edu/4924/docs/arm...opment.pdf

Print this item

  Latest GLM updates will not work on C++11
Posted by: Brian Beuken - 12-27-2018, 02:13 PM - Forum: Fundamentals Errata/Questions - Replies (2)

Ah its sad day, but one that has to come sometimes. There is an issue with the latest updates of the GLM libs which we need to take account of, it may cause some problems on some SBC's depending on the version of GNU Compiler they have access to.
I've tested most though and they are fine so far.

GLM no longer works on C++11 so you need to compile using C++14. None of the code actually changes in any way, its just that the 2 versions of C++ have slightly different understandings of the keyword constexpr const which is used in GLM
The current build of GLM is built to C++14 standard and therefore if you try to build with C++11 you get a whole screen-full of warnings and errors.

The fix is just to ensure you build with C++14

Alas poor C++11, just as I was planning to learn how to use you, you were replaced Wink

Print this item

  Wow, Christmas really brings out the spammers
Posted by: Brian Beuken - 12-27-2018, 01:17 PM - Forum: Scratchpad Games - Replies (2)

The amount of attempts to register has shot up this Christmas holiday, not quite sure why but its up to 20-30 a day at the moment, they are all bots, or spammers pushing viagra or some other nonsense, its much more than the usual 3-5 I normally get per day. Some are even braving the delayed moderation forum, where its possible to post, but I clean them up most evenings.

This means I need to get a bit tougher with them, rather than just refusing to activate I'm starting to ban their IP's, its a bit more time consuming but it should reduce the traffic as they tend to come from a few stock IP addresses (nearly always Russian).

Its very very unlikely that a genuine request to join will get stopped by a banned IP, but if it does, (and I am hoping the ban doesn't stop you reading this), just locate my email on the main site and let me know. I promise I'll un-ban you and get you on the site as soon as possible.

Print this item

  Merry Christmas
Posted by: Brian Beuken - 12-25-2018, 03:48 PM - Forum: Scratchpad Games - No Replies

Its that most wonderful time of the year.....when you get a new SBC

Have a great holiday period and if you got my book as a pressie... I am sorry, but maybe we can make it work out Big Grin

Print this item

  PhysX
Posted by: Brian Beuken - 12-20-2018, 09:50 AM - Forum: Assets, Tools, Libraries and other useful things - Replies (2)

Nvidias flagship physics system is now available as open source.


I've not tried it yet on Raspberry and to be honest I kinda think its too much for a Raspberrry as it is really designed for much more powerful systems, but if you find that Bullet isn't cutting it for you, then try it out. I'll add it to my list of things to try out in 2022 Big Grin

https://developer.nvidia.com/physx-sdk

Print this item

  Game Development Process
Posted by: jomoengineer - 12-02-2018, 06:18 AM - Forum: General Chat - Replies (2)

I thought I had posted this already, but it looks like it did not post for some reason.

So I've read books and articles on game development and most seem to cover either the programming aspect or how to structure the game environment but I was curious as to what a typical, if there is any, game development process looks like.  Like other software development or application development efforts, does game development go through some sort of formal process to come up with the architecture such as Agile or the older Waterfall model?  Is something like Model-View Controller used considering a game is basically a User Experience?

I have the Scott Rogers Level Up! (2010 edition) and it is a fun book to read with a lot of good info, but its mainly focused on the Game Designer.  I'm looking for some more inline with the software architecture process that is common in game dev.

Any thoughts or info would be appreciated.

Cheers,

Jon

Print this item

  the importance of culling
Posted by: Brian Beuken - 11-28-2018, 11:31 AM - Forum: Assets, Tools, Libraries and other useful things - Replies (2)

Its so much more important than people realise. I cover it a little in my book, but here's a really great video to see it in action, this shows how you can make a small amount of gpu go a long way


Print this item

  David Jones creator of Finders Keepers in Retro Gamer #185
Posted by: jomoengineer - 11-28-2018, 06:57 AM - Forum: General Chat - Replies (3)

I just recently started to pick up issues of Retro Gamer on my weekly trips to Fry's Electronics although the magazine is a bit behind here in the States. 

In load (issue) 185 the 40th anniversary of Space Invaders is featured with an image on the front cover, but I was pleasantly surprised to see there was an section dedicated to David Jones, creator of Finders Keepers, Spellbound.  Although 40 years of Space Invaders is impressive,  someone who can stay active in the Game Industry for 30 years is doubly impressive.  The article is very cool and I found it interesting how he came to be a Game Developer.  I never had a ZX Spectrum, but I am certainly going to find more about this if I can.

And, I do believe this is the same David Jones that is mentioned in the in Brian's Fundamentals book.  

I'm really liking Retro Gamer as well as Wireframe; both are good reads. 

https://www.myfavouritemagazines.co.uk/r...issue-185/

Print this item

  Making maps is easier with...
Posted by: Brian Beuken - 11-26-2018, 10:34 AM - Forum: Assets, Tools, Libraries and other useful things - Replies (1)

There are a few really good 2D (and some 3D) map editors out there, for the beginners I strongly recommend using Tiled, its got lots of very cool features, is simple to use, outputs data in a lot of good useful formats and more important is still being updated regularly 

https://www.mapeditor.org/

Print this item

  missing Rand function/macro
Posted by: Brian Beuken - 11-19-2018, 08:27 PM - Forum: Fundamentals Errata/Questions - No Replies

its not really missing you can find it in the invaders code and copy it over. Many of the files after invaders are starter projects where you have to add functions/macros and methods. But its causing a bit of confusion so I've added it to the Kamikazi base code, and here it is

inline float Rand(float a_Range) { return ((float)rand() / RAND_MAX) * a_Range; }

its a small inline function, I add it to Game.h but its at home in any frequently included header file.

Print this item