Due to the nature of design that every company uses to combat hackers, they need to be given something to lose. League of Legends makes you go through an annoying process of leveling and getting characters to play ranked. Many games have an up front 60$ expense. AntiCheat companies have determined this small fee deters hackers from trying too many things that will get them flagged by security. It’s a solid first level of defense so I kinda need some sort of tutorial mission. The first time through will be better than great scifi, but you know, you don’t want to watch the same movie over and over to get to content.
This embarking mission(*tutorial/starter mission) will be in Sol,aka our Solar System. I already have an asset that does this, but doesn’t work with HDRP. I need to add asteroids/space stations. I should add targetting and radar. I need to add trading and items. I need to add in MMO ship upgrades and fleet acquirement. I can also add story missions.
This should take at least two weeks, but will form the very core of the entire game, not much else will have to be made other than content. I’m gonna plug at this casually because if you get intimidated to not start, you’ll never finish, but it should be one step at a time. I see the whole picture, want to make a giant step, cannot. I must take small steps.
My mum’s getting older with some health conditions and I was gonna do the art + reflecting on history of how she helped me in life. Funny enough, life and her needing me over this week got in the way of those plans. That’s cool though because I’m falling back to old faithful, just spend the day with her and see what she needs. If you forgot it was Mothers Day, that’s always the fall back. Spend the whole day with your mom if you can, do the chores she asked, hug her, tell her you love her, etc.
See, I hope you have a good mom. But all mom’s deserve love, especially the ones who messed up. Jesus said to love even your enemy… When he said to go the extra mile, it wasn’t for people who loved you… It was for oppressing soldiers who conquered your country. If you’re supposed to go the extra mile for those oppressing you, ya can do it for ya mommerson.
My mom is legit cool. She listens to rock and alternative from the 50s-90s. We could be jamming to Toadies, White Zombie, or Bon Jovi or Blues Traveller, like nothing cool is off the table. She has her moments where stuff gotta be done her way, so what, we all do, and this is the day that it’s totally acceptable for that. She tells actually really cool and sly jokes these days which causes me concern because when your mom is cooler than you, even for a moment, it is disturbing, but still very cool! Its the day de la madre todayos. Enjoy chillin, lots of people gotta learn to stop their relentless pursuit of nothing and realize they have something already here: Da mom.
And if your mom passed away, fret not, Love is the only thing that lasts forever. Money, fame, power, youth, cool looking clothes/cars, are here today and gone tomorrow. So every moment of every day, remember to be good and loving to those around you. If you have love in your heart, and you seek betterment of humanity by following the savior Jesus, you got dis: We see all our loved ones again, mom included… I mean who would reject love? Death can’t even stop love. Happy Mother’s Day, there’s something stronger than death in your mom… So don’t mess with her!
Always obey your parents. When they are present. This is the best policy in the long run. Because if you don’t, they will make you. -Mark Twain
I can’t WAIT to tell you the tutorial missions Storyline!
YAY! Imagine not being able to write a creative story you want to tell for three years because first you need to make the papyrus to write on. My creativity is all pooled up ready to boil out. FINALLY!
So while I need to put about 4 hours to proc gen Star systems, (stars already made), my focus now is storyline and mission final design and implementation! I’m gathering all my storylines which are majorly good now, putting them together and finalizing the tutorial mission.
While the galaxy/star systems can shift around you, (you keep equipment/experience) I don’t want to mess with missions and keep the story solid… So though my next task is proc genning star systems insides, I want to focus on story lines as I passively design since that’s the big thing.
No promises, but we may have a proc gen galaxy and the first mission sometime this upcoming week!
Add forests, aquanebula, aeronebula. Giant monsters, regular nebula, anomalies, etc etc, anything trippy and interesting. Space is boring naturally, spice it up with freaky stuff.
Learn HDRP and UNITY and I’ll give you a version similar to this:
Lets decorate 24 sectors of 80,000ish stars like this:
Starcitizen and EveOnline have 64 Bit engines to allow larger solar systems. Unity only has a 32 Bit Engine, which at first glace is a weakness, but is a strength in a way. 32 Bit engines do faster 3d math so your rendering frames per second is better. The problem is if you move more than 5 to 10 kilometers, the estimation math makes the whole world jitter and shake. To overcome this, I did the Futurama style warp where the universe moves around you. Once I get outside a certain range where the jitter happens, then I reorigin the player to 0,0,0, and take the difference and apply to every Entity in the game, and then remember the offset change… It’s not as trivial as that since waypoints, targetting and everything need to be offset… It wasn’t trivial but now I possibly have a superior engine to Starcitizen/Eve Online for the sheer fact that the math done on you 3d card is smaller numbers of 32 bit vs 64 bit!!! Wild, right? It’s the opposite of bloat, it’s extreme efficiency.
I’m able to grab what the player sees and then skybox it. In this bug video, I’m capturing it over and over… So it keeps overlaying the same thing over the sky box. Gets kinda trippy. Cool! Works in game though now. Awesome!
First off, let me say I successfully have employed this on an old monobehavior game with DOTS/ECS expansion levels. I update the player controller once and it affects both the old levels and the new levels. Now lets get to business.
If you want to use DOTS/ECS, you’ll have to entirely learn a new system. It’s not trivial to learn DOTS, you gotta be smart and have patience. This does not mean you have to make a new game from scratch though like they tell you. I have I have the secret to extend your monobehavior game into a DOTS/ECS game and still reap all the performance.
Before we get into this mono->DOTS ECS conversion kit, let me start by showing you a pitfall so you know I am not unaware of at least one.
1: If you’re not using .foreach in your scripts, you’re not updating your entities properly. You cannot really use your enemies/weapons/etc directly with DOTS/ECS. They must be recoded because there are many of them.
You can however keep your PlayerController since there is only one of them. While Dots/ECS unlocks many cores to deal with multitudes of enemies/explosions/scripts, you still have the original main core to do a few instructions on it without slowldown. A PlayerController is fine to be monobehavior for this reason.
You want two copies of the player in memory. One is the monobehavior GameObject/Mesh the other is an exact duplicate Entity/Mesh.
When you're in monobehavior levels, make the entity renderInvisible/disabled/nocollision.
When you're in Entity mode, you keep the monobehavior GameObject/Mesh: renderInvisible/enabled/nocollision
Also when you're in Entity mode: You make the Entity Visible/enabled/collision.
The way this works and why you can edit your monobehavior only once is:
In gameobject mode it already worked for you.
In Entity Mode: You still operate on the monobehavior gameobject/mesh, but at the end of the update, force map the position/velocity/rotation/etc to the entity.
Boom, you now have your gameobject PlayerController you spent so long on and your game you spent so long on ready to take on some ECS/DOTS custom made enemies and such. It’s a lot of work to make DOTS/ECS scripts for enemies/weapons/etc, but your player literally doesn’t have to be changed much at all.
There’s a huge caveat when it comes to collisions, where you need to sort of handle them gingerly in a few different ways. One of which is not forcing position/velocity overlaps while you’re suffering the effects of a recent collision. There’s other ways to do it too.
I cover more about this these videos:
&
I want more people to dive into Unity ECS/DOTS.
Thanks to the Unity devs for making parallel processing in UNITY a core feature.
If the Unity devs did not make this, I was going to make parallel processing at least in scripts. If any of you wanted to know how to multithread in environments outside of Unity, check out my safe way of doing it here: https://www.starfightergeneral.com/2023/05/how-to-do-multhreaded-coding-correctly/ (I post this because at Carnegie Mellon they did not teach us this. They said threads are the future but said they are too difficult and not worth getting into. This is something I had to find out on my own. CMU was right on both accounts, since in the 90s we only had 1-2 cores, and also multithreaded is tough, but it’s getting manageable if you follow guidelines now).
Thanks also to Unity Discord and this forum and Official Unity forums. There’s still a lot of nice people helping by which I would have never learned DOTS ECS.
Again, this is for real, my own game uses this implementation of one player controller for Monobehavior stages and the same player controller for DOTS/ECS new levels! It’s not feasible to edit two controllers for the player non stop, but it is feasible to make new enemies/stages in DOTS/ECS.
I’m fairly certain a majority of the people who use Unity were unaware that YES, YOU CAN TAKE YOUR OLD GAMES and make new levels into ECS DOTS! You’ll need new scripts for enemies/stages/weapons, but the player controller and all your assets are intact. I hope this super encourages many people to dive into DOTS/ECS. Let me know if this worked on your existing IP.
I came up with a rule to never mess up in multi-threading:
The only interface function between threads is passing string data representing the data you want to give… Like a TCP/Ip or UDP packet
….Never deadlock ……….Never stamp on memory ………………No worries for the rest of your multithread career ………………………Jim’s multithread rule.
The reason it never deadlocks is because reading and writing take a finite amount of time and cannot be stopped unless the machine is malfunctioning.
The reason it never stamps on memory is that you do not read from a memory address that isn’t locked.
You can write to this address many times, with packets pooling up in an array buffer.
You can read and just exit if it is empty like you’re accepting an internet packet.
Why did everyone have so much trouble with threads back in the day? People thought they were tough or something. ;) Now you know the way.
If you choose to go fancy and do things a new way, there are times and places for it, but they’re extremely rare compared to just doing it this way, which is awesome if you can use multicores with it.
Psedo CODE:
Write: 1) Compile ‘thread A’ data into array of packet strings 2) Check if unlocked otherwise wait 3) lock 4) Append array of packet strings into an array of strings that only get accessed behind lock 5) Unlock
Read: 1) Check if unlocked otherwise wait 2) lock 3) read array of strings that only get accessed behind lock into an array local to ‘thread B’ 4) unlock 5) decode packet like you would a video game data packet
It should be impossible to deadlock this on most systems, near impossible on the rest. I’m not sure if this is common knowledge or not, but this is the meat and potatoes way of doing things. It wasn’t easy to figure out, but it’s easy to use,applicable in close to 100% of multithread situations.
Now that I have 24 zones and walls, I can then populate each zone with around 80,000 stars, and the rainbow stars will be the connectors to the next zone, but not all rainbow connector stars through the radiation free trails are easy to get by for many are barricaded with fleets demanding tribute to enter,pirates that catch you off guard, dragons,or fleets demanding tribute as you exit and are encumbered with loot. It helps to explore to find many ways into the deeper 24 layers of the galactic core.
Starfighter General has 24 star field zones of concentric spheres with the middle being the hardest: Omega. You start on the outer: Alpha. To get to the next zone, you must find a glowing rainbow star who you can see visually from a long ways off. They are glowing because the radiation safe zone that you can pass through is warping the Electromagnetic Spectrum. These passage ways are often guarded by fleets, monsters, anomalies or patrolled by powerful pirates. You can blow em up, pay tribute, or sneak by… Just remember coming back out from the depths of difficulties and rewards, you have to pass by them again, but you’re slower laden with loot.