Skip to main content

Unity simulation shell

    Simulation shell built from Unity. Players can plan how many stations(milk tea) wanted and the number of workers(reader). When a worker is attached to a station, the sales increase and also the pressure. When detached the worker from the station, the pressure decreases.  


    Now is only the shell. Game logic is illogical. But the following steps are game recording at server-side and simple report. Better game logic also depends on accumulated effect. Then return back to game design. Project development is a looping circle. Further development needs other parts and accumulation of usage. Actually, the original idea of this simulation game is for training. Games explain experience sometimes better than lecture or communication. But the investment costs more, of course.  

    Here are some notes deserve recording. 

point tracking 


UI elements depends on event queue. Game content depends more on overall scanning. Event object will automatically generated when deploy event actions (i.e. onClick()). I once accidentally added in failed item and then deleted everything I thought irrelevant. I deleted Event object.... and had to redo UI... 

Position in game and on screen(UI)



Coordination of game and screen are different. It is obvious in 3D games, but ambiguous especially on top-down 2D. Converter is needed. 


Clone game object and UI


It seems more reasonable to clone object from prefab. My first attempt wasn't success due to missed items. Maybe try again next time. Worker object was hidden behind the scene. This strategy also helped debugging otherwise. 

Clone UI and attached it to game item is worth noting. UI should be the child of Canvas, even it was set to follow a game object. One resource mentioned Text could show up without canvas while creating Textmesh. I may try sometime. First concern is that the data type would be different from the source. I don't like keeping disposable remains. Second, my time is too scarce to spent on dealing orientation while turning. Just left it to Canvas. 

Collide, trigger and static 


Unity doesn't deal physics between static objects since those aren't movable. Rigidbody with static or Kinematic are off the gravity. Collision as trigger is allowing overlap. My design is basically ignoring collision while dragging. The only option I can use is Rigidbody with trigger. Only workers deal with collision. 

My naming convention is Capitalize the 2nd word.... VC tirelessly trying to adjust my habit... so the code looks a little inconsistent....

Initialization


Items on the top ob object list are not always initialized first. I found it when tracking mysterious missing record. Therefore I put null check at potential 1st usage trigger. 

Tracking or dependency


There are possible relationship between same objects, different objects or event triggering. My design uses list tracking to unify and simplify relation checking. It might be boring, but easy to debug. i.e., I found Unity doesn't destroy all dependent objects... My object was destroyed and moved out of lists. But the collision seems remain around dumping area and alerting error for null object.....





Comments

Popular posts from this blog

Bookmark service (MongoDB & Spring REST) -2/2

    I accidentally deleted my development VM. I got lucky having the habit of taking notes. This blog is useful. Development VM is doom to be lost. Rebuild it waste time, but having a clean slate is refreshing~. What concerns me more is my AWS free quota this month is reaching 85%. The second VM I launched but never being used might be the one to blame. (Of course, my mistake.) I terminated the wrong VM. Now I got Linux 2 built. Great, just threw away everything happened on AMI.  1st layer: Page Page class   Originally, I need to prepare getter/setter for all class properties for Spring. By using lombok, I only need to create constructors. lombok will deal with getter/setter and toString(). But there are chances to call getter/setter, but how? .......Naming convention.... Capitalize the 1st character with the prefix get/set.  Annotation @Data was used on this class.  Repository class Spring Docs: Repository https://docs.spring.io/spring-data/mongodb/docs/3.0.0.RELEASE/reference/html/#m

Comments for my Server/Client Web API samples

        Finally, I finished the comments for python/07 and 09 projects. I almost forgot to put the date on source code which is used to note how long it took me. Not precisely in hours….. I didn’t include source code in my previous post. If choosing code-section for this post…… maybe I want to mark out my comment….. (Really?!)          Once my work was developing websites for enterprises, including ERP, CRM or content sites. The sustainability of network and security are important issues. There are 2 methods for HTML Form submission: GET and POST. Submit via POST is secure, compared to GET which piles parameters on URL. RESTful API is mainly using GET.         Yup, even if you have a certification key, if you put the value on the URL, it is visible data. When writing socket-communication, client-server sockets are a pair; both follow the agreement on commands and structures; and there are countless ports for usage. Plain text on the message of socket communication usually wouldn’t be

Built LAMP on AWS AMI, and update/install Python3.6, pip v20, Apache wsgi and Flask

I got one half day free and I spent it on building a LAMP on AWS AMI. I also wanted to squeeze Flask into Apache. So I also install/update Python 3.6, pip V.20.1, Apache wsgi and Flask. I wrapped up progress for now before I forgot all resources.    On AWS marketplace, everyone can pay for a good suit such as Django. I’m not interested in content creation unless there are interesting topics to resolve. I don’t know what left to do if I bought a solution; and I may get annoyed like everyone else if the solution causes more problems. To build on my own is more realistic and practical. Installing a LAMP (Linux, Apache, MySQL, PHP) was smooth while following AWS tutorial. Tutorial: Install a LAMP Web Server with the Amazon Linux AMI https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html To build Flask is absolutely a different thing….  still failed before I fell asleep... If I choose AWS EC2 Ubuntu instance, most tutorials are based on this Linux version. Unfortunately I oft